automatically manage default transactions

from the commit:

	Transactions in TransactionalGraph's are often, by default, bound against the
	executing thread (e.g. as a ThreadLocal variable). This behavior is not very
	helpful in JavaScript because while the main execution is in fact performed
	on a single thread, often a pool of threads exist to service asynchronous tasks,
	making our tasks often operate on an incorrect transaction instance.

	Due to this, we try and avoid this default thread-bound functionality and manage
	our own life-cycle if the supplied graph instance provides the interface to create
	a transaction independent of the executing thread.

part of what I was discussing in https://github.com/entrendipity/gremlin-node/issues/30#issuecomment-27206947

Basically, the default behavior of ThreadedTransactionalGraph that is often broken for async operations is now supported through this logic. Titan graphs (and any instance of ThreadedTransactionalGraph) now work right out of the box without the need to manually call newTransactionSync yourself.