Allow Modules to be extended

- Modules now include the Backbone `extend` method
- Modules automatically run an `initialize` function on creation, if
one exists
- Adds the ability to pass a custom module class when adding a Module
to an Application