WFLY-3175 & WFLY-3180 fixes

https://issues.jboss.org/browse/WFLY-3175
https://issues.jboss.org/browse/WFLY-3180

 * Improves web sessions and stateful ejb eviction logic.
 * Creates non-clustered version of org.wildfly.clustering.api services. This has the following side-effects:
   + Web/ejb clustering code no longer needs OPTIONAL dependencies
   + Applications that use the public clustering API will function correctly when server uses non-HA profile

Changes from previous PR:
 * Added new wildfly-clustering-spi module containing an SPI for installing clustering services and factories for obtaining service names for the installed services
 * wildfly-ejb3 now depends on wildfly-clustering-spi, instead of wildfly-clustering-infinispan and wildfly-clustering-jgroups
 * Add logic, as unpretty as it is, to infinispan subsystem cache container add handler that triggers server restart to handle the case where ejb subsystem has already installed services that would be installed by a new ejb cache-container

Added HttpSession/SFSB expiration fixes which leverages logic from the previous commits.  This will fix intermittent failures in the clustered StatefulTimeoutTestCase.