A big Component cleanup.

- Changed getData to getDatatable (removes the pointless DataOwner
  interface).
- Changed over all references of holder to owner (as well as renaming).
- Refactored all components to the component package and organized them
  neatly in a way that finally makes sense.
- Renamed some components whose names were confusing.
- Beefed up documentation in World and Entity Components.
- Changed methods in those components to have event parameters. This
  enforces the concept that an event happens before a component method is
  called. This is a necessary distinction before a "tug of war" occurrs
  down the road.
- Added SkydomeComponent which will be used to set the skydome of a world
  (and its model).
Signed-off-by: Chris Sanders <zidane@outlook.com>
Interact in Entity takes EntityInteractEvent

- Moved action out of PlayerInteractEvent
- Seperated PlayerInteractEvent into PlayerInteractEntity and
  PlayerInteractBlock events
- Changed PlayerEnterWorld, PlayerExitWorld events to Entity versions.
Signed-off-by: Chris Sanders <zidane@outlook.com>
PlayerInteractEvent is PlayerInteractBlockEvent

- Removed PlayerDeathEvent (Vanilla concept).
- Wrapped up modifications to core components.
Signed-off-by: Chris Sanders <zidane@outlook.com>
Throw an exception when getting an null owner.

This will solve a lot of headaches when dev inevitably attempt to attach
components to an owner in another component within its constructor.

More other use cases prove that this commit is warranted. A
NullPointerException otherwise is unhelpful.
Signed-off-by: Chris Sanders <zidane@outlook.com>