To dispatch events, the interaction base class now inherits from goog.events.EventTarget.
With this change, the user provides a filter function instead of an array of layers. Selection layers are created lazily, and addition/removal of layers is not handled by the control to give the user more options, as suggested by @elemoine.