Handle nil intermediate object on deep fetch

When using ActiveRecord Hash.from_xml, a self-terminating xml tag gets written to the hash with a nil value.

``` xml
<library>
  <shelves/>
</library>
```
becomes
``` ruby
{ 'library' =>
  { 'shelves' => nil }
}
```
Performing a deep_fetch below this point `deep_fetch(['library', 'shelves', 'books'])` results in a NoMethodError being thrown.

This nil middle element should behave in the same way as a missing middle element and either raise an `UndefinedPathError` or call the block if one was given.