MQTT 3.1.1. support and refactoring

- MQTT 3.1.1 Support
- Implementation details are hidden within *.m files
- NSObject categories are replaced with @protocols
- Instance variables names adjusted (prefix "_" added)