Settings API Primary Document refactor

Closes #2606

- Refactor settings api responses to `{ settings: [ ] }` format
- Update all code using api.settings to handle new response format
- Update test stubs to return new format
- Update client side settings model to parse new format into one object of key/value pairs

Sure, it's a little rough in some places.  But, all the tests pass + 3 more basic ones for settings.read and settings.edit.