Add context wrappers

Context wrappers allow the creation of read-only context and contexts
which have a different default error handler and user context