API change to hide more unobservable details from players.

[ADDED]     Observable - all things that can be observed by a unit or player; currently Tile and GameObject.
[UPDATED]   canObserve harmonized to deal with any observable.
[UPDATED]   getOwner -> checkOwner - hide the owner of unobservable tiles/game objects.
[UPDATED]   More centralized observation test logic.
[FIXED]     Some warnings.