Initial implementation of a three-valued logic type (Trilean).

The main objective is just to see how well this works using a value
class implementation (wrapping an Int). The representation is:

  0 = false   (all bits 0)
 -1 = true    (all bits 1)
  1 = unknown (last bit 1)

This might not be something that is generally-useful enough to include in
Spire. I just wanted to code it up and see how it looked.
Would any of these names be better: `x`? `num`? `value`? `encoded`?