Reflection based type bridge

Go types can now be used directly and interchangeably with GoLX types using
the bridge in types/gotype.go. This is achieved through reflection, Go's
type aliasing and dynamically generating the necsary type objects on the fly.

This should allow all Go types to be stored in memory without giant structs
and indirects while playing nicely with any dynamic and parametric types.
Go Type aliasing work and Type methods

Lots of revisions and tests for GoType and it's related types to make sure the
behaviour is correct and that the implementation is more elegane. Support for
methods connected to Types was also added
Removal of stuff replaced by GoObject and GoType

All Go types are now aliased directly onto their Go implentation with
reflection using GoType so primitives do not need to be implemented by hand.
Port type added

New type wrapping Go channels for input and output added
More changes to include methods on types

Various changes flowing from the change of the Type interface