Using a ProxyArray to get ListBox items handled correctly

Meant to not make a new branch, but I accidentally screwed up the old one when trying to revert it and decided to delete it. (See #992).

Anyways, to repeat: this intends to address #820.

This time my approach is an ArrayProxy that inherits from BasicObject and delegates everything to Array. 

Please let me know if this approach is good, needs tweaking, or needs a totally new direction (for example, how about `class ProxyArray < Array`?).

I have some questions / comments. I'll put those in-line before :poultry_leg: :sweet_potato: :fork_and_knife:  time!


OK, my thinking here was that whenever a user wants to modify the items they'll call a method on `items` that goes something like `items<<` or `items[index]=` and those would go to the array by method_missing. But if they just want `items` back they'll just get the actual array. I thought I had to do this because of the failing specs, but now I see that it was because of me 'clobbering' the response from Array. More on that thought in a different response . . .

But out of curiosity, let me check for understanding. You're saying it would make more sense to give them back the proxied array so that they can do something like
```ruby
my_items = my_list_box.items
my_items << "Avocado!"
# my_list_box.items == my_items
```