XEP-0198 fixes from Ge0rg

Set up connection listener and stream handler early with patched version of smack.
Prevent binding of null resource
Fixes #1475
Fixes #1181
XEP-0198: use new smack, fixes for race condition

Reconnection callback was triggered before SM was resumed.
Fixes #1475
XEP-0198: another race condition

Fixes #1475
XEP-0198: another race condition

Delay stream enablement until resource is bound for sure
Fix duplicate ServiceDiscoveryManager
Fixes #1475
Fix case where connection appears up but is down

Smack gets confused about connection state.  Detect with pings.
Fixes #1544
Fixes #1476