allow $PERU_CACHE_NAME to override cache root

also use hyphen instead of underscore in the default path
$PERU_FILE_NAME
add basic man page
split the git code out into a plugin
move $PERU_CACHE_NAME logic into core
use a proper import for plugins, with peru_plugin_main()
rule_hash()

Right now we only compute the hash and print it. We don't actually put
anything in the cache yet.
actually cache files
avoid fetching when we already have a git rev