Open source changes for high density caching impl

- Serialization module improved to support multiple Data storage types
- Introduced Node & Client extensions (to support serialization abstractions)
- Improved partition service to support high density caching 
 
See https://github.com/hazelcast/hazelcast-enterprise/pull/66
If a variable containing an instance of ClientExtension is called 'initializer', perhaps it would be an idea to rename ClientExtension to ClientInitializer. It isn't a hard rule, but now we have 2 concepts we need to deal with.