Filter by sample

* New class `vcf.SampleFilter` modifies Reader to filter each row's samples as they are being read
* Class destructor removes monkey patch but modified Reader does work normally
* Class can be used as a module or via the command line interface `vcf_sample_filter.py`
* Samples to filter can be specified by name or index
* Specified samples are filtered by default but can be kept by specifying "invert"
* Filter can write to any writable object (stdout, specified outfile, etc)
* Errors and status are given with warnings and logging to allow customization