cloner: support for ref-updated parameters

When a job is triggered by a `ref-update` event, zuul-cloner complains
about missing parameters:

    zuul-cloner: error: Some Zuul parameters are not properly set:
	zuul_branch
	zuul_change
	zuul_patchset
    Define them either via environment variables or using options above.

The reason is that change and ref have slightly different parameters
(see zuul/launcher/gearman.py).

Split the list of expected Zuul parameters in three set, the commons one
being parameters shared by both change and ref events. An OrderedDict()
is used since the structure is reused in the argparse help message.

The parameter validation will reject a command line mixing parameters
from both change and ref since it does not make sense.

When parameter from one of the set has been set, hint about the missing
parameters for THAT set which would dramatically help. Else point to
--help which has all the details.

Downstream bug: https://phabricator.wikimedia.org/T76003

Change-Id: Ic920c2c8fe7d4159a4094ce8af5f07962f22a4af
Merge https://review.openstack.org/#/c/137675/1

079917d cloner: support for ref-updated parameters

Conflicts:
    tests/test_merger_repo.py

Bug: T76003
Change-Id: Ifad1854f05bad975186d7af6654cb1fd91a7bc5e