Move all of the integer logic from Trits into Int and UInt.

It became clear while working on UTF6t, that having every instance of
Trits evaluate its integer equivalent value was not a good idea.
Especially when you're making trit sequences that are hundreds of
trits in length.

Now, the integer equivalent is only evaluated if you specifically
instantiate an Int or UInt.  A base Trits object has no integer
representation.  This is good both because it means long UTF6t strings
don't crash the system, and because UInt does not have to keep its
integer value separate from the signed one.

I also shifted the naming of the constants in trit.py around a bit, I
was finding it awkward to refer to the Trit instances from other
submodules as e.g. trit.TRITS[trit.ZERO].  Now it's just TRIT_ZERO.
Add UTF6t initialiser.

This changes the semantics a bit; when initialising a UTF6t object you
are either encoding a string, or decoding a trit sequence.  If the
argument passed is a string, we assume the former.