* Use 'peerhost' to replace 'peername'
* Add more functions
* Export type 'opts/0'
* Use 'peerhost' to replace 'peername'
* Add function 'get_caps/3'
* Rename 'get|set_property' fuctions to 'get|set'
* Improve the 'open_session/3' API
* Remove the function 'update_expiry_interval/2'
* Rewrite the 'presence' extended module
* Update the 'attrs/1' and 'handle_timeout/3' functions
* Update test cases
* Rewrite the test cases for extended modules
* Add test cases for 'reason/1'
* Remove the default value of 'headers' field
* Add function 'get_flags/1' for test
* Add test case 't_undefined_headers'
* Add test cases for emqx_ctl module
* Improve the 'channel' module and add more test cases
- Rename the 'Client' field to 'ClientInfo'
- Remove the 'expiry_interval' from session record
- Add more test cases for emqx_zone module
- Add more test cases for emqx_banned module
- Add more test cases for emqx_message module
- Remove 'sockname', 'conn_mod' fields from type 'client'
* Fix the type specs for cmd usage
- Rename the 'Client' field to 'ClientInfo'
- Remove the 'expiry_interval' from session record
- Add more test cases for emqx_zone module
- Add more test cases for emqx_banned module
- Add more test cases for emqx_message module
- Remove 'sockname', 'conn_mod' fields from type 'client'
Fix invalid QoS and protocol name, fix handling for Topic-Alias-Maximum and Maximum-Packet-Size, and send DISCONNECT Packet to client when the session is taken over
- Remove the 'is_enabled/1' function of 'emqx_banned' module
- Remove the 'is_enabled/1' function of 'emqx_flapping' module
- Add 'enable_acl/1', 'enable_banned/1' and 'enable_flapping_detect/1'