Stop using the extend and instead subclass Array

Apparently including modules into singleton classes of instances blows
away method caches: http://tonyarcieri.com/dci-in-ruby-is-completely-broken

Plus, I think it's probably confusing to be looking at what is clearly
an Array, but somehow these extra methods.