Extended `module` functionality

Modules now have the functionality of Marionette.extend. You may also pass a custom class to be instantiated as the Module when adding a new Module to the Application.

Fixes the botched PR #844, which in turn adds the functionality described in #837.

It breaks backwards compatibility in its current implementation.