Report array decoding failure if any item decoding fails
mostly rename & slight change in algo

I did not do the benchmarks, though most likely `flatten` from the standard library should be faster. There is extra overhead for the test, but BSON documents are limited in size anyway, I doubt the array/list going to be large in the doc
Merge branch 'kriomant-array-item-failure'