Refactored MediaTranscriptRecorder management

In Bot project code:
- Refactored the way Conversation and ConferenceSession transcript
recorders are managed to handle the different lifespans of these
Collaboration objects for the same user endpoint/conversation. Added
event subscription and logic for ConferenceEscalationRequested to
ConversationTranscriptRecorder
- Added logic for sub conversation transcript recording support to AV
and IM transcript recorders. Moved 'main conversation' event handling
logic to TranscriptRecorder and generalized
ConversationTranscriptRecorder to handle main and sub conversation cases
- Added placeholder method to TranscriptRecorder to initialize with a
conference invite
- Added placeholder methods to TranscriptRecorder to create a
MediaTranscriptRecorder (and establish a call or join a conversation
session) when a modality is added or a conversation is escalated
- Added state and transcript recorder type logic to
MediaTranscriptRecorder and TranscriptRecorder

In Client app code:
- Updated Message class to be consistent with Bot Message class (since
this will eventually be a shared data contract between user and app
endpoints)