more unit tests
Remove ping() from the Engine

We do not need to define ping() at the Engine level since checking
if the return fro, describe() is empty or not is sufficient, which
can be done at the server or even client level
Separated out thrift components into multiple files
more granular synchronization when loading and cleaning
Make locking prettier :)
javadoc update
javadoc update
javadoc update
javadoc update and misc changes
added convenience methods
Added some documentation to describe the locking protocols and
started using LockService in the Engine instead of TLock