Add channel namespace option

I am not a fan of maintaining separate Pusher apps for separate environments. I think all client libraries should have a simple option to configure a channel namespace which is then applied to all channels. For example you could have 'local', 'staging' and 'production' namespaces which may be applied to the channel 'private-user-1' as 'local.private-user-1', 'staging.private-user-1' and 'production.private-user-1'. This stops any conflicts from occurring when using a single application.

It looks like this repo could be a bit dead but I hope we can get this or something similar implemented across all libraries. It would be great if someone from Pusher could take a look, provide feedback and let me know if we can get this added across the board (happy to provide more PR's!).