Replaced the concept of CacheWrapper with Service and Traits
* The Service is singleton object (only once on each slave at every moment) which provides traits, using the @ProvideTrait annotation
* Traits implement some functionality, not specific to cache
* Stages can use @InjectTrait to get the instance of trait provided by the service, or call slaveState.getTrait(MyTrait.class)
* Cache traits are using methods from JSR-107 Cache spec