(PUP-500) Define Collector Expressions

Prior to this the Collector Expressions were partly defined, but still
had a large number of notes and todo areas. This cleans that up and
makes the decision that the semantics of the Query part is
implementation dependent. This decision was made because the current
system has no consistent semantics and rather than impose unforseen
changes on those implementations, this just continues with the status
quo.