Add and spec ModuleSet#enable_all and #enabled.

This also changes the internal representation to a Set, to prevent
duplication.
Start modules in the app run loop.

ModuleSets are now passed to the App unchanged, and ModuleSet#start now
takes responsibility for calling Module#run.  As such, the app run loop
now calls ModuleSet#start_enabled instead of running the modules
directly.