Two new features for recurse_over_arrays

These are implementations and specs for two special cases that do not work correctly a the moment.

A hash inside an array inside a hash inside a hash is not parsed:

    RecursiveOpenStruct.new({
      foo: { 
        bar: [ { blah: 1} ] 
      } 
    }, recurse_over_arrays: true)

A hash inside an array inside an array is not parsed:

    RecursiveOpenStruct.new({
        bar: [ [ { blah: 1} ] ]
    }, recurse_over_arrays: true)