SgSchema fixed deadlock issue within initialization process

SgSchema._initialize now triggers the thread wait event before locking
itself down.
Added the ability to selectivly cache/not cache an Entity

It is now possible to specificaly tell an Entity whether or not
to cache.

By default Entities determine if they should cache themselves based
on there SgConnections caching state, this can be overridden by
calling the SgEntity.enableCaching() function.  To disable caching
for a specific Entity the SgEntity.disableCaching() func is avail.

To reset an Entity to use the connections caching state there is
the SgEntity.resetCaching() function.

When an entity falls out of scope its caching state is remembered
should it be created again.