SgSchema objects can now init themselves in a separate thread

When a connection is created a schema object is created for the URL.  After a
SgConnection is created the metaclass calls initialize() on the SgSchema for
the URL.  This can take some time when the schema for a given URL has not been
initialized before.

SgSchemas now have the ability to start a thread which performs the build
initialization, SgSchema.build() can also be called not threaded though the
default is to use threading.

A build event object (threading.Event) is locked until the schemas build()
function is complete so any calls to a SgSchema will block until the build
process has completed.  The call to wait() for the build event object does
contain a timeout limit so that in the event build() raises an exception schema
functions wont lock out.  The timeout value for the wait calls is a class var
named "BUILD_EVENT_TIMEOUT" on the SgSchema class.  The value is defaulted to 20
seconds but can be modified.

Threading the build process allows connection objects to now be creating without
blocking until the schema has been initialized.

Also added a function SgSchema.isBuilding() for returning if the schema is
currently being built.