Use HTMLMediaElement events instead of a watch

Closes #5.