Issue title: Null pointer exception: setReconnectCallback on a null object reference -- Should we just implement the reconnect ourselves?
 Issue body: Please fill out the form below before submitting, thank you!

- [x ] Bug exists Release Version 1.1.1 (Java Repository Master Branch)
- [x ] Bug exists in Snapshot Version 1.1.2-SNAPSHOT (Android Service Repository Master Branch)
- [ ] Bug is just in the Sample Application.

__Android API Version Bug Seen on:__22

__Android Version Bug Seen on:__5.1

## Description of Bug:
When there is no internet connection. I set 

`            conOpt.isAutomaticReconnect = true
`
But because this doesn't really work, I have implemented auto-reconnect myself:
```
override fun connectionLost(cause: Throwable) {
        LOG.e("Connection Lost 38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5 $cause")
        connect()    
}
```
## Console Log output (if available):


``` 
Failed to connect to <url> 38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5 java.lang.Exception: MqttException (0) - java.net.UnknownHostException: Host is unresolved: <url>

 java.lang.NullPointerException: Attempt to invoke virtual method 'void org.eclipse.paho.client.mqttv3.internal.CommsCallback.setReconnectCallback(org.eclipse.paho.client.mqttv3.MqttCallbackExtended)' on a null object reference
	at org.eclipse.paho.client.mqttv3.internal.ClientComms.setReconnectCallback(ClientComms.java:603)
	at org.eclipse.paho.client.mqttv3.MqttAsyncClient.connect(MqttAsyncClient.java:625)
	at org.eclipse.paho.client.mqttv3.MqttAsyncClient.attemptReconnect(MqttAsyncClient.java:1304)
	at org.eclipse.paho.client.mqttv3.MqttAsyncClient.access$2(MqttAsyncClient.java:1299)
	at org.eclipse.paho.client.mqttv3.MqttAsyncClient$ReconnectTask.run(MqttAsyncClient.java:1343)
	at java.util.Timer$TimerImpl.run(Timer.java:284)
 
 ```


 Comments: 
 Comment 0: fixed by implementing reconnect by myself. 
{'source': 'GithubIssues', 'repo_name_with_owner': 'eclipse/paho.mqtt.android', 'issue_id': 558841425, 'repo_stars': 2643.0}