Added configuration to use a better style on couchdb

The pattern we presently use with couchdb works, but it has several small problems. First if a new service is added to a presently existing app the view has to be updated. Secondly we have no good way to filter the changes feed, so we have to observe changes even on irrelevant documents.

This PR cleans up a few small things, and allows the user to enter config to use a list function, a changes feed filter and a specific set of keys with their view/list/changes requests.

This allows us to use a pattern where we mark documents with their relevant packages, and then update the config to include and sequence new overlays, and filter the changes feed to only care about changes relevant to our app.

This doesn't break any existing functionality and has been tested with legacy apps.