Closed #30: Synchronization probably won't change from here on out. I'll
have to add Keyboard and mutation events, however. jsdom has some
problems so I added a tiny event library to smooth out inconsistencies.