Lots of changes on feature, stability and performance
- Modified Client and Server struct to expose the options directly and
  made it so one can just do &Client{} or &Server{} and it will work
  (this is actually in the last commit, just catch up on comments)
- Modified Session from generic kv store to more MQTT session specific
- Moved ackqueue into session in preparation for session saving
- Fixed closing service issue where it may panic
- CONNECT will messages now works (will publish when conn dies
  unexpectedly)
- PUBLISH retained messages now works (will retain last message for each
  topic, part of MemTopics)
- Performance increased slightly, maybe another 5%?
- Added Paho Go client test (paho_test.go)
- Tested w/ PAHO MQTT interoperability test client (python) and mostly
  passes (1. DUP test didn't pass because it's not yet implemented,
  2. offline queueing not supported.)
- Tested w/ PAHO MQTT C client and passes all except DUP test. Again,
  DUP not yet implemented.
- Tested w/ mosquitto client (pub/sub test) and passed.