Replace BDF data structures with classes in forum sharing client
This introduces two new classes for protocol session states: One for the sharer and one for the invitee.
The respective classes for protocol state machines and actions have been moved into these classes as inner classes.
The two new classes replace the BdfDictionary
that was used before to represent the local state information of a forum sharing session.
A similar technique is used for local actions and protocol messages.
Local actions are just represented by one Enum and protocol messages have their own classes now that also handle serialization into BdfDictionaries and BdfLists.
Closes #378 (closed)