Changed Metadata.startupScript() to return an item, not entire metadata.

This makes it easier to compose the 'startup-script' metadata key with other
custom keys, while still providing a shortcut for reading a file into a string.
Renamed GCE VM parameter 'disksToCreate' -> 'disks'.

The authoritative documentation on the subject:
https://developers.google.com/compute/docs/reference/latest/instances/insert
says 'disks' is the correct one.
'networkInterfaces' is a list, not an object, in JSON.
Use the 'common' library to convert machineType and network to URLs.
Process the traceback stack in reverse order to find the nearest caller.
Added a script to easily regenerate expected JSON outputs for tests.
Added 'current' project and zone which override defaults.
Replaced uses of GCE.default.{project,zone} with GCE.{project,zone}().

This lets us override current project/zone without affecting global defaults.
Added support to run Python-based configs via common launcher.

Added an adapter to handle Python file evaluation similarly to YAML and a common
factory-like class to handle both Python and YAML files transparently.

Changed run.py to use the new generic config handler library.
Added a Python-based config for Ambari deployment.
Added copyright header to the YAML config file as we have for Python.