Cleanup in prep for release. Various type aliases moved into package object.
Closed #31 and added a test case for `last`.
Using `emitView` instead of `emit` in a few key places where more laziness is useful