Become a proper NPM package

- Reorganize the file structure to be less messy

- Add a git-tree-srv wrapper script that will require CoffeeScript and
  then server.coffee

- Fill out package.json
Finish the response once git's stdout is closed

If the 'git cat-file' exits on the same tick as it has writable data in
the socket we can finish the response before the remaining data arrives.
Instead finish the response in stdout is closed which seems cleaner
anyway.
Add some more friendly messages

- Print a message once we've started up

- Reference the example config file if we're invoked without one
Properly handle revisions with / in them

This is pretty embarassing as all full reference names have slashes in
them
Improve documentation

- Add a README.md

- Add more comments to config.coffee.example

- config.coffee.example => config.example.coffee
  This is purely so text editors and Github can syntax highlight it
  correctly