Ditch Array.prototype methods in favor of fast array helpers

Faster, and makes the code nicer, imho.  This is a precursor to handling Arguments objects in when/function et. al., as reported by @phated via IRC.
it will deoptimize the function passing the arguments object.


given:

```js
function foo() {
  return bar(arguments);
}

function bar(args) {
  return args;
}

while(true) {
  foo(1,2,3);
}

```

v8 gives us.

```
[disabled optimization for 0x26b72e91d151 <SharedFunctionInfo foo>, reason: Bad value context for arguments value]
[failed to optimize foo: Bad value context for arguments value]
```