Implement Array#count instead of falling back to Enumerable#count

This avoids iteration with `#each` if no arguments are given to `#count`.

This is an easy win for performance for large arrays, and MRI and JRuby already have this optimization.

In addition to performance, the implementing Module as given by introspection now matches MRI, meaning behavior will be consistent if some silly user deems to monkey-patch `Enumerable#count`.

```ruby
Array.instance_method(:count).owner #=> Array (not Enumerable)
``` 
@YorickPeterse 
The implementation was directly copied from that of `Enumerable#count` for consistency's sake, then modified to return the optimized result in the third case.