Added back in userdata.
Remove responsibility for userdata from val.
Added type registry to keep track of type metatables.
Fixed up userdata.  __add method works!!!