merges splits a channel into two channels
- primary channel and secondary channel. The primary channel
is a clean forward of the original channel. The secondary
channel can use a slightly different protocol than the primary channel.

Any query on the secondary channel will be blocked until a matching
query is received and processed on the primary channel. (The user must
supply a function that decides whether or not the queries are matching.)

Whenever a query is being answered on the primary channel,
all queries pending on the secondary channel that are
matching this one will be replied at the same time
using the an answer derived from the answer on the primary channel.

This process provides two channels (primary, secondary)
split off from one source channel. The primary channel
is a clean forward of the source channel. The secondary
channel can use a slightly different protocol than the primary channel.

Any query on the secondary channel will be blocked until a matching
query is received and processed on the primary channel. (The user must
supply a function that decides whether or not the queries are matching.)

Whenever a query is being answered on the primary channel,
all queries pending on the secondary channel that are
matching this one will be replied at the same time
using the an answer derived from the answer on the primary channel.

This process acts as a simple pass-through
+ it decreases the effort index of each query
except for a query with effort index zero
it asks a special value provider.
It can cope with several queries in parallel.