Add new message class  `connect_ack_message`
Add `option::fold()` and some cleanup
Add `encode_len()` function to encoder classes

It reports the number of bytes of the message content.
Add factory functions for MQTT messages

And use them in `session-test`.
Use lowercase codes in `connect_message:str()`