hide context compatibility in Interpreter
fix deadlock due to double lock

runHawkInterpreter and getContext were both calling withLock, so calling
getContext inside runHawkInterpreter leads to trouble.
more compact initInterpreter
drop Context.Compatibility
rename initInterpreter to applyContext

it's the only thing we do with the Context object.
fix warnings
Merge branch 'issue-96' into develop, closes #96