Refactor ProtocolStream:
* Rename class
* Remove handler state variable
* Use template instead of abstract class for polymorphism
* API processes one message at a time instead of many
* Remove error_code from the ProtocolHandler concept requirements