All of the specs

This pull request brings in a ton more integration tests, which cover all commands except SSH. Still thinking about how to do those.

It also lays the groundwork for more unit tests on the middleware, which is on it's way.

Pull requesting just for longevity.