Add an Array backed Set and use it in SetBindings.

Set implemented as an ArrayList subclass which implements Set and overrides add* methods to preserve Set semantics. This has a costly add() because it requires a scan of the array for pre-existent objects, but is dirt-cheap to create, copy, etc., and since SetBindings tend to be small relative to the total binding map size, this is a net win.  At this point, ArraySet is only to be used in SetBindings.