Fix multiple Range stdlib failures

* Add ducktyping support for Array#[], Array#[]=, String#[], and String#[]=
* Fix re-initialize check on initialize_copy
* Fix infinite recursion when inspecting cyclical ranges
Merge pull request #2103 from cheald/fix_multiple_range_failures

Fix multiple Range stdlib failures. I will followup commit to show how I would change @JrubyMethod signatures and reduce use of getRuby.getCurrentContext.