Move typemeta.go to api/meta/meta.go

Prepares for the meta object to front multiple underlying types
when TypeMeta and ObjectMeta is split in internal and v1beta3, but
combined in v1beta1 and v1beta2
Rename methods in api/meta to be cleaner
Add UID to MetaAccessor and Ref
Add support for ObjectMeta and ListMeta lookup
Use meta.Interface and meta.Accessor
Merge pull request #1969 from smarterclayton/new_typemeta

Allow Meta lookup to work across ObjectType and ListMeta