Implemented SimpleSet.clear()
SimpleMap improvements.

- Changed SimpleMap to hold two maps for keys and values respectively, instead of needing to convert properties back to keys.
- Implemented SimpleMap.delete() and SimpleMap.clear()
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