Implement Foldable methods for Array directly
Currently, they're implemented via conversion to lists. This works out sanely for
foldr1, after some transformations, but it's rather less sane for left folds. Left folds end up "twisted" like their list counterparts, giving potentially surprising performance characteristics. For
Array, left and right folds can reasonably be expected to be symmetrical.