Accept public_key and public_key_path when creating GCE server

Earlier, the code forced the user to specify the :public_key_path
option when creating the server. In some cases, the user may want
to pass in the key itself (string), and not a path. This patch
changes the code to use the #public_key method, which will first
check if the key was specified, and only attempt to read the file
if it wasn't specified.
Merge pull request #2016 from maginatics/gce_accept_public_key_string

[google|compute] Accept public_key and public_key_path when creating GCE server