complete rewrite of the type class
complete rewrite of the type class

Now there's no type created by associated type, it just become a routing type class,
however this has a cost, since the associated type are not injective,
requiring more witness for the curve than before.

tekul/cryptonite,tekul/cryptonite,vincenthz/cryptonite