bugfix: apps no longer use the same namespace hash

This was a big issue when running tests, since this:
```ruby
app = ActiveAdmin::Application.new
app.namespace(:brand_new_ns)
```
Would end up creating `:brand_new_ns` in the main app, since our
settings module (which doesn't dup objects) was being used to create
the `namespaces` API.
cleanup
move setting inheritance into its own module

Also added missing tests for `ActiveAdmin::Settings`
Merge pull request #2313 from Daxter/bugfix/namespace-pollution

Bugfix: apps no longer use the same namespace hash