I think is better to init the shared instance at the setConfiguration for two main reasons:
* When trying to setClientIdentifier, we get a NullPointer exception on Java as the shared instance is not yet created. 
* I looked at the Java sample codes provided by PubNub in their website and they don't use the connect model, they basically just call a constructor and proceed to join channels, which is different from ios usual flow which requires more steps (config -> connect -> join channels). From that perspective, setting the configuration is the first instance when we have the parameters for the Java constructor.