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!


This implementation of `method_missing` doesn't quite work because you're clobbering the return value of the `send` call. You should capture it and return that captured value after calling the `@gui.update_items` to preserve the array's original behavior.

Slightly surprised that no specs we have around the list box turned that up, but worth adding some that fiddle with the `items`. Not sure precisely how those would look, holler out if you want more guidance or help on it!