fix the shebang in empty_plugin.py
use printf instead of echo -n in tests

Strictly POSIX-compatible echo (e.g. on OSX) doesn't support -n.
create env.sh to share PYTHONPATH setup code
move default rule fields directly into the containing module

-- Before --
git module foo:
  rule:
    build: make
    export: out/

-- After --
git module foo:
  build: make
  export: out/

In the past we needed to avoid doing this, because named rules were
nested inside of modules, and there would've been confusion about which
module fields modified all nested rules vs just the default rule. Now
that the default rule is the only possible nested rule, the "export" and
"build" fields no longer need their own special "rule:" section. Yay for
brevity!
enforce that all plugin values are strings

This came up because the old "rule:" field got interpreted as a
(presumably invalid) plugin field after it lost its special meaning, but
its value was a dictionary, so it caused type errors in the plugin
calling code. Nip this in the bud.
replace .peru-cache with .peru/cache
convert import_tree to libgit2
start merge_trees -- but we need to expose git_merge_trees
convert _dummy_commit to libgit2
convert _checkout_dummy_commit to libgit2
convert export_tree to libgit2