Give  API collections direct references to the backend.
Merge pull request #177 from dreid/privatize-cyclical-backend

Give API collections direct references to the backend.
Initial refactoring of backend specific contexts.
Don't forget to provide an interface.
Rename _OneTimeCipherContext
Merge pull request #178 from dreid/composable-contexts

[WIP] Reduce the backend's API surface by making it a vendor of implementation specific CipherContext providers.