Bug 1109772 - Refactor bookmarks data access API.

This'll be a non-trivial bunch of work. I'm still hacking away, trying to get the abstractions right. Starting with bookmarks.

Parts 1-7 already merged; parts 8-10 now ready for review.
If we bring back the tabs, that means people who are now working on the browser part will be in trouble. We also don't want the login to be required. What would be a good way to deal with this?