"Bad value context for arguments value" deoptimization in `String.fmt`.

This deoptimization occurs when you try to re-assign arguments passed into the function.

Also, this change swaps slow `Array.prototype.slice` with `for loop`, here's a related [benchmark](https://gist.github.com/twokul/2632ed3df1d3e6d49000).

before:
![fmt-before](https://cloud.githubusercontent.com/assets/1131196/3981272/36463740-286c-11e4-8bbc-8d3dd80448e0.png)

after:
![fmt-after](https://cloud.githubusercontent.com/assets/1131196/3981279/410d61bc-286c-11e4-92d1-52bdb2d98f74.png)