Adds a test for nested, require objects
Simplifies the type lookup

Instead of trying to be smart and dynamically figure out the type of an
object we'll hard code it. The dynamic approach broke down for things
like Email that *are* a string with a different format. The classname
would end up being 'email' instead of 'string'.