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.

Side goals:

1. Better docs / introduce a `HACKING.md` with notes on what does what, where.
2. Grow a favicon, because that is what beefy is currently obviously lacking :)