(core) Pre-cautionary handling of disconnections.

In the case where the disconnection handler is called whilst
we are still connecting, we don't want to attempt a new
connection with the same paho client.
(core) Re-subscribe to topics upon unexpected disconnection.
(core) Change the subscribe signature slightly

To enforce that the topic and qos sequence lengths are the same.
(rx) First stab at a RxJava client.

No tests, and not everything's implemented, but it's beginning to
work.