Fix & organize Array#[], and #[]= specs

Previously, there were many specs in core/array/element_set_spec.rb that weren't actually testing the return value of Array#[]=. Also, there were a bunch of specs in language/variables_spec.rb for "obj[ags] op= expr" that were mostly testing the return values of Array#[]= or Hash#[]=.

I tried to keep a test for all the ones that were prevously there, but the number of splat argument tests in language/variables_spec.rb  might still be overkill.

Right now, the changes in language/variables_spec.rb only test the expansion of "obj[ags] op= expr" where op is '+'. I've written a separate version (not yet committed to my fork) that tests all the possibilities of op, but uses eval, which seemed to messy for an initial pull request.