Topic differentiation

There's quite a few changes in this PR, so including some explanations:
- Statabase & OrchestraState extracted to be defined in their own dedicated class

Backend:
- Events are stored and sent including the lemma that triggered the event. So Statabase stores the lemma that triggered the event and the events are sent to th frontend with this format:

        event = {
          lemma_id = {
            value_escaped = ###
           timestamp = %%%
          }
        }

Before, the format was:

        event = {
          value_escaped = ###
           timestamp = %%%
          }  

Frontend:
- Chords include the name of the lemma that triggered the event: <event_type><lemma_id>
- This name is used to highlight the chord that corresponds when an event is triggered from a lemma. The receiver is not highlighted, as this information is not included in the information that comes from the backend. 
- A similar structure is used on the frontend, to hold events as they arrived by lemma. Verifying which event/lemma has been modified becomes more complex.
- To show the events that are listened in the detail view, the sorted union of the events that are received for that event type is calculated.

This PR fixes a couple of extra defects:
1. Chords not been highlighted
2. Show events in detailed view when there are message types that are both triggered and listen