Deletion processing is not entirely a factor of the target, it is more
a factor of our mode of execution (dry-run vs pre-rolling-update vs
post-rolling-update). We want to introduce that post-rolling-update
phase, so introduce the DeletionProcessingMode enum and move it from
the target to the context.
We still need the reflect helpers, but we allow for clients to
register their own pretty-printers, which avoids the package
dependency for our pretty-printer. We register our pretty printers in
an init function in the relevant package (in this case,
upup/pkg/fi/printers.go)
Fix#5551
* GCE support only
* Key and secret generation
* "Direct mode" makes API calls
* "Dry run mode" previews the changes
* Terraform output (though key generation not working for master ip)
* cloud-init output (though debian image does not ship with cloud-init)