Renderer improvements.

- Use binary search to look up dialogues by end time instead of linear scan.
- Store the subtitle div for currently visible dialogues so that removing them doesn't need expensive querySelector.
- Merged separate currentDialogues and newDialogues arrays into a single map of dialogue ID to subtitle div.
- Used Maps for EventListenersMap and PreRenderedSubsMap
- Miscellaneous cleanup