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.
1. It's partly about pyramid, partly about how we use pyramid
2. I think Pyramid can use a tl;dr summary and would love if more projects would let me read their code without forcing me to first dive into the frameworks they use.

I'm fine with correcting or clearing up this documentation, or moving it into a readme or other source file, but I do really think we should have more documentation like this that explains our code in human-readable language.