Add Jsonnet configuration language support.  Assumes _libjsonnet.so is in $PYTHONPATH
Make executable
Merge pull request #1 from sparkprime/master

Add Jsonnet configuration language support.
Assumes _libjsonnet.so is in $PYTHONPATH.
Ignore backup files "*~".
Make Jsonnet optional; only require it if we're parsing a Jsonnet file.

Previously, loading this module would fail without the presence of _jsonnet.so
in PYTHONPATH leading the user unable to do anything without Jsonnet, even when
not using Jsonnet. With this change, lacking Jsonnet still allows user to parse
and evaluate Python and YAML files.
Added auto-generation of the VM images offline cache.
Use auto-generated VM images cache data instead of hand-written data.
Show overall status after running all tests; exit with proper code.
Exit with non-zero status code on error to propagate failures.
Simplify getting an optional key from a dict with a default value.
Added support for JSON input files.
Converted cascading if-then-else into a map of extension -> ctor.
Added sample uses of Python and YAML configs.
Refer to settings.sh and run.py relative to `dirname $0` instead of `.`.

This lets us run the script from any directory, rather than only from the root
of the repository.
Removed the implicit default config of `ambari.yaml`.

This is problematic because a user might not be expecting to bring up an Ambari
cluster as part of running the tool, and also, Ambari config requires running
`make` to generate the startup scripts first, so this avoids confusing errors.

From now on, users will have to explicitly specify which config they want to
run, which will make even more sense as we build up a library of configs and
having it default to Ambari will become even more perplexing.
Simplified handling of pseudo image map; minor cleanups.
Added README for examples and links to examples + app catalog from main page.
Specify path to the ambari.py config now that it's required.

Also clarified which commands must be run from this directory vs. from the
top-level directory of the repository. Cleaned up Ambari server hostname now
that we're using the Python config instead of the YAML one.
Don't strip comments that are hashbang lines like #!/usr/bin/bash
Raise a more user-friendly exception.
Jsonnet now assumes relative paths are relative to the current file, not the $PWD.
Add Ambari example written in Jsonnet, with small variant
This patch does a few things
Expect the list of resources returned from Jsonnet to be in a field called resources, instead of at the top level
Provides the GCP project name in the jsonnet "environment"
Merge pull request #3 from sparkprime/ambari_jsonnet

Add Jsonnet Ambari demo + modifications to Jsonnet configuration module.

Other changes:
* Resources returned from Jsonnet in a field called "resources" rather than top-level
* GCP project name is now passed in the Jsonnet env var $GCP_PROJECT
* File references are relative to current file, not $PWD