Trade UI & Dynamic Overlay

Implemented the ability to view, accept, and reject Trades.

Overhauled overlays so that they are updated dynamically when
redrawOverlay() is called.
Overlayso setup is done moreso by BoardActivity (specifically:
BoardViewSurfaceThread asks the BoardActivity what buttons to display in
a more generic format than before).
Overlay buttons are now specified with Button objects with
GestureListeners set. There is space for 6 buttons on an overlay, but
button sizing may be used to emphasize some buttons.
Due to the overhaul, I could add features to existing overlays:
* Added the "Kick" button on Player overlay to replace the "Trade"
button in the game CONFIG screen. Only enabled if "master".
* Added the "Sell Estate" button on Estate overla.
* Buttons on the Estate overlay are not added at all if the estate
cannot be bought.
* Buttons are disabled more often when the UI knows they cannot be used
in the current game state.
Fixed the Player overlay "owned complete estate sets" field, for real.
The Auction overlay now shows the auctioned Estate's complete overlay
text below the auction.
Added the Trade overlay.

Upgraded Chat to finally use the HTML parser, allowing color Player and
Estate names like in the rest of the UI.
Chat now supports any Overlay object to be associated with a line of
text. Now Auctions and Trades (even past ones) can be recalled by
tapping on a line of chat talking about it.

A lot of bug fixes and refactoring, also.