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!


Yep, that's precisely it. Once we've let the items out, we want to be able to track any mutation to the list that they may choose to do, so they shoudl always be talking to the proxy.