Refactor API code to use annotator-store flaskless

Everything seems to work: reading, creating, updating, deleting, searching, permissions seem to work but need better testing, and in general more tests and thorough code review would be good.

To keep a consistent style and make refactoring easier, I decided to use traversal with a `@view_defaults` class everywhere, using the defaults class to specify the `context` predicate, so as to group the views within that. For the same reasons I do not use view names but use a resource for each location (I explictly state `name=''` for clarity, though that could be removed). I think this style works out nicely.

I put some questions in the comments, just search for the question marks.

The dependency on the next (flaskless) annotator-store version has yet to be added.
Please don't rename this. There is a loose convention I observe throughout the pyramid community for `<blank>_from_settings`. It should be public. A typical use case would be for CLI scripts that want to interact with this module without instantiating a full pyramid application. In this case, we should maybe leave it as  `store_from_settings` and return the es object. What would be fair, though, would be to take the `os.environ` checks and move them to our `h/__init__.py`, modifying the settings before they API is included rather than making the API itself aware of these checks.