VariantReader: fix deallocated memory access

converted string was going out of scope and getting destroyed, but its
internal buffer as returned by c_str() was continuing to be passed into
htslib's bcf_hdr_set_samples(), and eventually getting clobbered by new
memory allocations.

* add tests to for variants with missing genotypes

fixes #122

thanks @droazen and @lh3 for the help debugging this one.
It appears to me that the old version of this code was broken in the case samples.empty() && ! include, since it had:

if (samples.empty() && include)
      return include ? nullptr : "-";

which would be skipped if ! include was true, meaning "keep all samples" wasn't working.

Since you now appear to have fixed this, can we add tests specifically for the "keep all samples" and "exclude all samples" cases?