UserContext fixes

* the user-context can't be set to a null value on the Config; an IllegalArgumentException will be thrown

* each HazelcastInstance will get its own user-context map that is a copy of the Config.user-context.
So changes made to the user context in one HazelcastInstance, will not be visible to the user-context
in another HazelcastInstance (that is ceated from the same Config).
Merge pull request #608 from pveentjer/fix/3.0/unwanted-usercontext-sharing

Fix/3.0/unwanted usercontext sharing