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