[google|compute] Added read metadata from file functionality

The patch adds the ability to read metadata from files allowing users to specify startup scripts or arbitrary metadata for instances in separate files.
I'm assuming ruby passes along sane error messages for missing files or bad permissions.  Does Google (and consequently fog) pass back a good error message if data size limits are exceeded?  If not, you may want to do a sanity check on file size.