Improvements to time handling:
 - Long ticks are now broken up into subticks for component system processing
 - Really long ticks are capped
 - Game time now reflects the sum of deltas.
 - World time is now in ms of relative time, so a day in world time is the same number of ms as a realtime day.
 - Various interface cleanup.
Game time is now persisted
Bit of refactoring of the save game format in preparation for multiple world support.
Removed some old classes that were unused.
A couple of small fixes to chunk generator.
Refactored WorldTime method names.
Added some thread safety to EntityAwareWorldProvider. Block changes off-thread now cause block entity changes on the main thread.
Fixed possible issue with cleanup of temporary entities where blocks are changed in response.
Renamed RegisterMode.CLIENT to REMOTE_CLIENT, added CLIENT as either local or remote headed game (so a player present).
Removed residual whenHeadless settings.
Fixed time not to progress during loading of a world.
Changed the world start time to be a little later in the day.
Added events for Dawn, Midday, Dusk and Midnight
Fixed an issue causing lighting to not propagate correctly in some cases where light is being blocked.
Cleaned up the Diamond3iIterator so that its parameters correspond to the grid distance of the vectors returned from the origin.
Merge remote-tracking branch 'upstream/multiplayer' into multiplayer
Adapting to new API version.