Fix a problem in accessing something other than Hash in Array

When you access array in array like this:
  {:foo => [:bar, [:baz]]}.deep_fetch(:foo, 1, 0)
it fails, because [:baz] doesn't have `deep_fetch` method.

This commit fixes this problem by use loop instead of recursive
call of deep_fetch.