Cleanup Module tests

Recently, I've been working on cleaning the module specs #977. I realize that this is a pretty cavalier undertaking, but as they stand, I think the tests are pretty broken:
+ its hard to see what is covered and what's not
+ its really hard to add new functionality and appropriate tests
+ they doesn't really help document modules

This is especially important now, as we plan for doing module work with v2 #859.

When I was doing this, I was thinking about a couple things:
+ Isolate behavior: test something once well and rely on it working other places. To that end, the tests are organized around the `application.module`, `module.start`, `module.stop` entrypoints.
+ Submodules: this is something especially interesting with modules and represents many of the variatiants
+ 4 Initialize approaches: a lot of the old tests were based on the idea that we should tests all of these eveywhere. The new tests, test them thoroughly upfront and then rely on the fact that you have a module for other tests

When will this be done?
It will be done when the tests are at parity with the old tests and express `module` as well as possible. As I went through and added the tests, I removed tests from the old spec that were no longer necessary. Now that it should be at parity, I'm going to do another sweep to make sure there aren't any glaring omissions. 
I also hope to make the language around the test descriptions and usage of spy's consistent. I realize this is a lot to look over, but I'd appreciate as much help as you can offer on this.