implement API to create contexts on demand
This API allows to create new contexts on demand. This will help to provision the system in a way to test sharing with external users a little better, and also should support other scenarios where control over external users is desired.
Fixes #8 (closed) and needs !13 (merged) (that's why it's based on the feature branch)