Events API

Here is a list of the things we still need to do for the events API.

- [ ] player events
  - [x] PlayerJoinEvent and PlayerQuitEvent (#176)
  - [x] AsyncPlayerChatEvent (#158) (#143) (#151)
  - [x] PlayerChangedWorldEvent
  - [x] PlayerInteractEvent
  - [x] PlayerMoveEvent
  - [ ] achievement (#220)
- [ ] Chest events - refer to inventory events?
- [ ] Inventory Events
  - [ ] CraftItemEvent
  - [ ] EnchantItemEvent
  - [ ] InventoryDropEvent
  - [ ] InventoryAddEvent
  - [ ] InventoryPickupEvent
  - [ ] InventoryClickEvent
- [x] Entity riders (#94)
- [x] Game mode change (#82)
- [x] Entity interaction type (#206)
- [x] Teleport cause/teleport event
- [x] Weather Events  (#212)
- [x] LightningStrikeEvent, WeatherChangedEvent, WeatherEvent (#212)
- [x] Entity events
  - [x] EntityDespawnEvent
  - [x] ProjectileLaunchEvent
  - [x] EntityBlockModificationEvent
  - [x] EntityCreatePortalEvent
  - [x] EntityDeathEvent
  - [x] EntityChangeHealthEvent
  - [x] EntityTeleportEvent
  - [x] EntityTameEvent