add checks to make sure injection files have correct contents
simplify FileInjection code
move require for tempfile
Allow FileInjection to accept contents directly

Previously needed to create a tempfile for PublicSshKeyInjection
that combined the keys. This allows sending the combined keys as
a string instead of a path to a tempfile.
Use SCP to upload files.