More unknown states + IncompatibleStateException.

[UPDATED]   getObject(ID) now returns Maybe and unknown if you cannot see another player's object with the given ID.
[UPDATED]   canObserve now returns Maybool and UNKNOWN if the current player cannot observe the location.
[UPDATED]   Simpler event firing code.
[IMPROVED]  Avoid triggering notifications about ownership change when not changed.
[ADDED]     IncompatibleStateException when invoking actions that are not possible due to game state.
All public methods now check whether the current player can access them.

[ADDED]     Authentication to all public methods.
Added omicron-api, a purely public interface to the omicron core.

[ADDED]     omicron-api is now the dependency clients will use to interact with omicron.  Direct access to the core is being phased out completely.
Made collections thread-safe.

[FIXED]     Made all state collections thread-safe; either immutable or synchronized.
Added more custom hashCode/equals

[IMPROVED]  Performance of often-used classes by adding fast hashCode/equals to them.