A huge refactoring of the core.

The main changes are:

* the values associated with pieces are now part of the Piece class.
* Piece representations are now lazy (not stored ahead of time).
* DissectorO disappears.
* A Piece's type can indicate that a representation is always available.
Removed the transitional Piece.repr method.
Optimized all imports.
Replaced map + getOrElse with fold.