rename and tidy up Datomisca exceptions

 - rename to Datomisca exception, rather than Datomic exception, as these are exceptions that we are introducing, and are not part of the underlying semantics of Datomic
 - use DatomiscaException in favor of generic java.lang.Exception
trap and futurify immediate exceptions from transactAsync

Datomic will throw some exceptions immediately from the invocation of transactAsync. This messes with the Scala idiom of monadic combinators on Futures, so these exceptions are caught and immediately returned in a failed future.
helpers for extracting exception data from clojure.lang.IExceptionInfo

In recent improvements to Datomic, many exceptions will be thrown as either IllegalArgumentException or IllegalStateException. The concrete types are actually subtypes of these standard Java exceptions, which also implement Clojure’s IExceptionInfo interface. These helpers are there to match on this type, and to help extract the Clojure map that holds the exception data.
transform and wrap exceptions thrown from query invocation

The exception chains that Datomic produce for queries is rather unwieldy. This just helps to flatten out the chain and provide a more useful top level exception message.
minor: throw DatomiscaException rather than RuntimeException in schema manager
correct previous commit 7931fe3984
Merge pull request #84 from pellucidanalytics/topic/exceptions

Improve exception handling