Added in ability to set a custom cluster to connect to

As the title describes - added pusherWithKey:delegate:encrypted:cluster: method. By default it still uses the constant defined if no cluster is specified, otherwise it uses the provided one.

Very similar to #149 but just with more freedom.