Add EventTarget type and Event types

- EventTarget is designed to behave like its counterpart in Javascript