Moved most typeclass support code into api.
Un-valueclass the default type class implementations.

Because nothing says scala like NoSuchMethodError.

Clearly will have to revisit.
Re-value-class the implementations.

The inducement was a package object mixing in the same
trait of implicit conversions which would later be mixed in
by a different package object. It is probably one of the
numerous package object bugs where when it is confused about
an identifier it just picks one at random.

Oh, you think I'm kidding.