start shell-out plugin model: git_plugin_exe
path_plugin_exe
implement the new plugin model

Delete runtime.py. Rewrite plugin.py to shell out to plugins instead of
running them in process, and get rid of the Plugin class.  Delete the
old git and path plugins and replace them with the new exe variants. The
parser no longer needs to hold and plugin state, so turn all its methods
into toplevel functions.  RemoteModule now just takes a type string
instead of a plugin object.

The idea here is to simplify the interface between peru and its plugins,
and also to make it possible to write plugins in a language other than
Python. In the new model, plugins are invoked on the command line like
this:

  path/to/plugin.py COMMAND [COMMAND_ARGS] [PLUGIN_FIELD VAL]*

For example:

  ./peru/plugins/git_plugin.py fetch /tmp/dest url http://github.com/foo/bar

The other thing the plugin needs is the path where it should do caching,
which is given by the "PERU_PLUGIN_CACHE" environment variable.

The reason for the COMMAND argument is that we're going to want plugins
to support features beyond just fetching, particularly the "reup"
feature, where e.g. the git plugin could update the rev fields in your
git modules based on the state of some remote branch (maybe printing the
new YAML to stdout).