In `vulture::events::Events`:
  - added public `Type{}` enum
  - added public `Events{}` union
  - added public `events()` getter
  - added public `type()` getter
  - added protected `_events` field
  - added protected `_type` field
Included `Events`
Had to rename `Events` to `EventsUnion`
In `vulture::events::System`:
  - added abstract `poll()` method
Had to make `WindowEvent::Type` an enum class
some boring definitions. skip it.