Add REJECT filter to non-somatic records in VarScan2

Like the work done in FreeBayes, this patch adds a REJECT filter to
non-somatic records (i.e., everything with a Somatic Status - SS - not
equal to 2) produced by VarScan2.

It includes some duplicated code from FreeBayes, which could be moved to
vcfutils.
Merge remote-tracking branch 'upstream/master' into varscan-reject-vcf
Move move_vcf to vcfutils to reduce code duplication
Port to the new location of move_vcf
Add a couple of FIXMEs / TODOs
Merge remote-tracking branch 'upstream/master' into varscan-reject-vcf
Add missing shutil
Use the bgzipped file name for adding the filter

Previous code used the original return value from combine_variants, and
thus the file was without the right extension, causing file_exists() in
the reject calling function to close early, preventing any REJECT records
to be written
fix mutect format: FA => FREQ
change FA->FREQ and some checks
comments from Luca
adding 'move to' info at _fix_mutect_vcf
remove Exc, not apply here
Update scalpel.py

for ``min_cov`` consistently ``3``
Added option of providing sample names to write_empty_vcf and implemented recovery attempt of sample names in case of no variants detected in any region
Debugging marker removed
Added tabix indexing of empty vcf files when trying to rescue sample names in empty vcf files
Output proper headers in empty vcf files. Use pyvcf to fish out sample names from variant files with no variants.
vfilter.py fix for empty vcf files when performing freebayes hard filtering
Tabix indexing of empty filtered FreeBayes variant files
ensemble.py circumvented ensemble calling for empty callsets