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.
Well an empty array means one thing in our implementation today (return all variant calls) and this proposal wants us to change that implementation to something different. So I just thought it would be good to say exactly what we're supposed to do so that nothing is lost in translation. (like this PR might slip through the cracks eventually and we'd forget to change the impl to match == sadness)

Anyway! how bout this:
```
Only return variant calls which belong to call sets with these IDs.
If an empty array, returns variants without any call objects. 
If null, returns all variant calls.
```