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.
I think it's neater to not add a new field if it wasn't there in the first place (for whatever reason).
By the way, these lines, like most of the code were already present in either annotator's store.py or in our previous api.py. That doesn't mean it should not be questioned (please do!), but it does mean I cannot always defend why some code is here. :)