ISPN-2639 Initial JSR 107 implementation

* Basic operations and validation supported.
ISPN-2639 Integrate TCK running for JSR-107 impl and increase pass rate

* Use Maven Invoker Plugin to run TCK automatically in each build.
* Just name the module as 'jsr107'.
* Add a weak value hash map and use it in cache manager factory to
avoid leaking classloaders.
* Cache manager name for Infinispan JMX configuration should be
composed of the cache manager name and classloader information in
order to guarantee uniqueness. Otherwise, TCK fails with a lot of
JMX domain conflict errors, and there's no real reason for allowing
duplicate domains whose name would be more confusing.
* Integrate cache loader logic to make tests pass.
* Adapt to latest 0.6 spec changes.
ISPN-2639 Cache managers keyed on weak class loader references

* Infinispan cache manager implementation has a finalize() method to
avoid cache managers being garbage collected without proper shutdown.
* Move to a weak key map for cache manager collections, keyed on
class loader that avoids leaks.
* Make all other references to class loaders weak to avoid keeping
strong references.
ISPN-2639 Rename from JSR-107 to JCache

* Makes it easier to support future revisions of JCache API which
will be driven under a different JSR.
ISPN-2639 Add support for UserTransaction
ISPN-2639 Add support for cache writers and other TCK fixes

* Added support for Cache writers.
* Add an assertion to Infinispan Cache so that old values are checked
for null.
* Implement removeAll().
* Some operations should skip loading from cache.
* If cache non transactional, return STATUS_NO_TRANSACTION.
ISPN-2767 Add defensive copying option for storeAsBinary functionality

* This enables true, store-as-value, functionality within Infinispan.
* It's required by the JSR-107 specification.