share/IlluminaData.py: version 1.1.0.1

Added new function 'fix_bases_mask' (adjust bases mask to match actual barcode
sequence lengths).
Moved 'name_matches' function from analyse_illumina_run.py to bcf_utils.py.
Moved unit tests from IlluminaData.py into test_IlluminaData.py.
Moved unit tests from bcf_utils.py into test_bcf_utils.py.
QC-pipeline: illumina_qc.sh writes program version info to qc subdir, qcreporter.py must also look there for it.
share/Pipeline.py 0.1.1: implement PipelineRunner.__del__ to terminate running jobs on object deletion.
share/bcf_utils.py: 1.0.2.2, added 'rootname' function from qcreporter.py.
qcreporter.py: moved rootname function to bcf_utils.
share/Pipeline.py: added tests for GetFastq(Gz)Files (needed slight refactoring).
QC-pipeline/qcreporter.py: 0.1.0.4, getPrimaryDataFiles() check that source directory exists.
share/JobRunner.py: 1.0.1.1, GEJobRunner also counts 'qw' jobs as 'running'.
share/bcf_utils.py: added new 'touch' function (creates a new empty file).
share/test_IlluminaData.py: fix bug in 'name' property of MockIlluminaData class.
share/Pipeline.py: modified GetSolidDataFiles and GetSolidPairedEndData to make testing easier.
bcf_utils.py: added OrderedDictionary (from GFFUtils.py).
bcf_utils.py: new class 'AttributeDictionary' added.
share/JobRunner.py: allow specification of arbitrary qsub arguments for GEJobRunner.
share/bcf_utils.py: name_matches() function updated to accept a list of patterns.
QC-pipeline/qcreporter.py: make QCSample.fastqc method into a property.
JobRunner: add 't' (transferring) as a "running" state for jobs in GEJobRunner.