All calls to an Engine obj are locking the mutex for their respective object.
A unordered_map holds the mutex per java obj hash. The mutexes are created/deleted in constructor/destructor of an engine object.
A global mutex is being locked for write operations on the unordered map (not thread safe).
Cleanup of #includes