Clarify GASearchVariantsRequest semantics.

This PR clarifies the semantics of the `GASearchVariantsRequest` method. By adding the union we now have two possibilities:

1. If callSetIds is null we return all `GACall` objects associated with this variant;
2. If callSetIds is non null we return only the `GACall` objects with IDs in this list. If the list is empty we return zero `GACall` objects.

The clarification is required because the semantics of allowing the empty list to correspond to all calls is confusing, and does not allow for the situation in which we are not interested in any `GACall` objects.
Is it necessary? I've tried writing comments, but everything I've come up with just seems more confusing! Surely this is clear? Either you explicitly request a list of callSetIds (which might be empty) and you get back exactly those calls you requested or you set it to null and you get all calls. I'm happy to change it, I just can't think of a way to write it that isn't more confusing that what is already there.