Context Changes

In order to implement thread safety when reading the context, I had to
pass the context by const reference everywhere rather than keeping it as
a member variable within the cache: it would have been impossible to
update without some sort of global lock and complicated update
mechanism.