Text tracks api

Yeah, it was causing an infinite loop with my EventEmitter class since I had an alias to `addEventListener`. There's explanation in the commit for it.