complete rewrite of gvalue. creating type_t!

This creates a big fat type that contains all operations we need. In
the future it is advisable to split up into different types (ord_t,
eq_t) but right now I can't figure a smart way to do union.

Also I'm preparing the grounds for the hashtable implementation,
something I'm going to need in another project of mine.