Game listeners in Game.Builder.

[FIXED]     Null-safe ChangeDbl.
[UPDATED]   Ability to register game listeners in the game builder so they can start reporting events before the game begins (including game set-up).
Merge remote-tracking branch 'upstream/master'
Fix NPE on game init.

[FIXED]     NPE when building game caused by controller not yet being set in the game object when events get broadcast.
Merge remote-tracking branch 'upstream/master'
Fixed test after API change.
Added and implemented 2 victory conditions.

[ADDED]     Victory Condition: SUPREMACY.
[ADDED]     Victory Condition: MIGHT.
GameListener improvements and victory condition fixes.

[ADDED]     Documentation to GameListener.
[FIXED]     Victory conditions are internal game listeners: they are not authenticated and should trigger on all events.
[FIXED]     Victory conditions do not trigger unless the game is running to keep them from ending a game that is not yet initialized or already over.
[IMPROVED]  onGameEnded now reports the victory condition that caused it to end.
[IMPROVED]  Misc improvements to game events.
Minor gameplay fixes.

[FIXED]     Construction site NPE: When object dies, its owner is now unset.
[FIXED]     Keyless players need to set themselves ready to start the game.
Turn should be a MetaObject.
Authentication update and made some methods public.

[UPDATED]   setTarget, schedule of ConstructorModule are now Authenticated and public.
[UPDATED]   Annotated other methods that require authentication but were missing the annotation.
[UPDATED]   PlayerController.getObject now returns a Maybe, and unknown if the object cannot be seen by the current player.
Merge remote-tracking branch 'upstream/master'