Proper module dependencies

Add new annotation @Modules that can be applied to a Module derived
class.  @Modules will be used to auto install modules transitively.
Legacy module dependency via @Inject into a module's constructor is
still supported.