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
Alignment wrapper changes.

- Only create the required layer-alignment wrappers instead of creating all 9 wrappers per layer.
- Absolutely-positioned subs go in their own alignment layer because they must always be positioned from the top-left corner.