Beefy 2 -- The Beefening

This is a really big refactor of beefy. The goal is to put beefy on a better footing to achieve the following goals:

1. Easier to integrate beefy into an existing project.
2. Easier to add new features to beefy without causing regressions.
3. Easier to test beefy.
4. Better windows support.

## Addresses:

1. Chokidar was removed in favor of watchr. It was having issues that were tripping assertions in libuv (!!!), and it necessitated a download of a node distribution during install. Not worth it at the moment. refs: #38
2. Add default name extension. Finally. Sorry for taking so long, @maxogden. refs: #5.
3. Should kill the max listeners warning. refs: #22.
4. You can specify a different default generated index.html with `-i path/to/index` or `--index path/to/index`.

## Immediate Road map
### for this merge, set in stone!

1. Better docs / introduce a `HACKING.md` with notes on what does what, where.
2. Grow a favicon because fun. refs: #17 
3. Integrate `watchify` mode. Get windows support working. These are related because they may cause us to have to move away from the `child_process.spawn` style of bundling. refs: #39, #14 

## Future Road map
### post-this merge, may change!

1. Add `--test` handler, that exposes `/-/report` so beefy can be used for semi-automated testing.
2. Add support for other handlers (sass, hbs, etc).
3. Potentially add support for a `~/.beefyrc` and `"beefy"` package.json directives (and, potentially, a `beefy install` to install beefy in your project).