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.

This PR also includes a bonus: tests for existing functionality, plus the new `Settings::Inheritance` module.