GeminiQuery API changed to allow for filtering of variants

For fields not easily queried via SQL, the variants have to be filtered via the
API. The GeminiQuery object now takes a list of predicate functions which a row
must pass before the row is returned. This relieves some of the duplication
that could crop up by filtering for multiple values at once.  I think this
refactoring will greatly simply some of the tools once they are altered to use
it.
Merge branch 'query-refactor'
Avoid using python environmental variables when running gemini, avoiding issues where PYTHONHOME or PYTHONPATH point to other library locations
Merge correct branch for GeminiQuery API changes:

This is what should have been merged.
78c2c84d72e3d52379e3e4fa2b01c934a210f146 was in error.
Added --phenotype and --exclude-phenotype flags.
Added phenotype and exclude-phenotype flags to query.

These will filter variants based on ones that either are completely in
samples with a phenotype flag or not at all in samples with a given
phenotype, respectively.