Add better support for application composition.

Merely `use`-ing express applications is practical, but doesn't quite go far enough in ensuring application settings are correctly inherited from the parent application. This PR:

- Allows express' built-in prototypical inheritance of settings to continue to be used.
- Changes how kraken handles express application configuration such that existing express settings are preserved and only specified settings are overridden. (Previously kraken replaces express settings.)
- Removes many redundant express setting overrides from default kraken config to allow express to add or remove settings without them having to be tracked here.  (Also allows express to continue to establish defaults).
- Add support for optionally inheriting view configuration (via `options.inheritViews`) from the parent app.
- Supports:
    - kraken apps to be mounted on kraken apps
    - non-kraken apps to be mounted on kraken apps
    - kraken apps to be mounted on non-kraken apps

NOTE: This change *should* be backward compatible, and once merged to `v1.0.x` can be merged into master.
I mentioned it in an earlier comment, but I expected a typical use-case would be to inherit everything from that parent app save view settings. If there are other settings that should be different, the child app can set them explicitly and they will override the parent settings, but it seemed like view configuration would be the most common use-case of all the settings that might need a switch (so devs don't need to research which property names they need to monkey with to get it working). Definitely open to other suggestions, though.