Spring cleaning

In the spirit of hopefully knocking out a few of the outstanding issues, I wanted to see if we could streamline the internal code a bit too.

I made an attempt to cleanup the number of arguments the internal functions use, instead option to use `config.view` when the configuration was passed along or `.call(this)` to things like `applyViewFn`. In many cases I tried to make the `config` always be the second or third argument to the view function, but some of those necessitated breaking the public API, which I'd like to avoid as much as possible.

Aiming for the end of the week to finish this.