Renamed Streams.retain to Streams.retainWith and added event Q.Tool.beforeRemove