- Connection.connect( connection ): store source connection into connection.source

- Filter.filter_objects( objects ): JIT code generated to filter array of objects, returns filtered objects

- Filter.add( objects ) and Filter.remove( objects ): refactor to use Filter.filter_objects()
  this removes duplicated code between Filter.add() and Filter.remove() at the cost of a single function
  call regardless of the number of objects processed.

- Filter.get(): build filtered set using Filter.filter_objects() from this.source.get() (not yet tested)
  this should allow to transform Filter into a connection instead of a set.
Set.connect( connection ): store source connection into connection.source
- Connection.connect( connection ) : add objects to new connection, requires that all connections provide a get() method to retrieve objects
- Filter.get(): fix when not yet connected to a source.
- Filter is now a pure Connection, does not require an output set.
- Connection.prototype.filter(): builds an output set for compatibility with current tests, this will be removed a follow-up commit