Return undefined on non-existent deep keys

The default behavior was to throw a 'TypeError: Cannot read property X of undefined'
when a deep object does not exist to check on. This patch checks to see if the object
has a property for the specified deep key and if not immediately returns undefined instead
of attempting to move to the next level of the deep key