added DisconnectedEvent to CommunicationProtocol, added handling for sent data while not connected, introduced IContext and WpfContext to handover UI context to backend (required to add to ObservableCollection)