Reimplement structure of implementation

Managed to remove TriBoolRepresentation I was
sure I didn't need it, but it took a few goes
to find away to express what I was after.
Make concrete tribool constructors private
Update TriBoolean.scala documentation