New functions: observed/expected #mutants in any genome window.

Note: I actually implemented those a few days ago, forgot to commit.

We already have hot/coldspot detection on specific predefined windows,
but then we end up with say two overlapping 20kb hotspots, and want to
know what the total observed and expected mutant number is over the
joint 30kb region - this is what those are for.

Tested on real data, work (or at least give the same numbers as from the
specific windows from hot/coldspot detection).
Added higher-only option to replicate_reproducibility_info.

Purpose of option: instead of counting how many mutants have within 2x
readcounts between datasets 1 and 2, only count one side: the ones that
have 2x MORE readcounts in 1 than 2, but NOT the ones that have 2x LESS.

Updated docstring and printed output; did some refactoring and added
some comments with the implementation; added unit-tests, pass.
Changing default genome/gene files from v4.3 to v5 chlamy genome!
Made compatible with Phytozome v5 genome format; cleanup.

Changed several functionality aspects to work with both Phytozome v4.3
and v5 chlamy genome files (different formats!).  General cleanup to
make the code make more sense.  THE FUNCTION SIGNATURE CHANGED - need to
change all the programs that use it!
Adjusted to new parse_annotation_file.py - changed -a option.

Adjusted add_gene_annotation and all uses of it to compensate for the
new changes to parse_annotation_file.py (last commit).

Changed command-line option -a for mutant_count_alignments.py and
mutant_join_datasets.py: instead of being True/False it now takes an
argument.

Removed unused import from mutant_growth_rates.py.

All run-tests and unit-tests for all the programs pass.
Simple function to merge multiple dataset files into one.
Minor: renamed a variable.
This was started a few weeks ago, I forgot to commit then.

Three major changes here:

1) Added UTR introns as a separate category from CDS introns - I didn't
previously realize UTR introns existed.

2) Allowed insertions in multiple genes - the v4.3 chlamy genome version
had no overlapping genes, so I didn't have to deal with this, but the
v5.3 one does, so I had to implement it.  The gene/orientation/feature
output fields are |-separated, with info for multiple genes.

3) If gene has multiple splice variants (again, didn't happen in v4.3
chlamy genome, but does in v5.3), there's a warning and the feature is
given as "MULTIPLE_SPLICE_VARIANTS" - TODO later I should make it parse
all of the splice variants, probably.

Various minor fixes/adjustments.

TODO still need to adjust the functional tests to work with this!
Minor: bugfix, comment fixed, refactoring.

Bugfix: if -> elif.

Fixed comment to be consistent with the code, removed warning message
for multiple splice variants because they're now normal.

Refactoring GENE_FEATURE_ORDER and proper_feature_order.
Changed for new features (5'/3'UTR_intron, MULTIPLE_SPLICE_VARIANTS)

Changes to match newer code - gene_feature field only, both in raw data
and in summaries:
 - changed multiple splice variant cases from "??" feature to
   "MULTIPLE_SPLICE_VARIANTS" ("??" still used for other weird cases).
 - changed "five_prime_UTR" to "5'UTR" and "three_prime_UTR" to "3'UTR"
   everywhere (I really should've kept that commit separate)
 - added differentiation of introns into 5'UTR_intron and 3'UTR_intron
   (in addition to plain "intron", which are CDS ones) - looked them up
   in the INPUT file to make sure I had them right.
 - changed the order in which feature counts get listed in the summary,
   since changing the names changed the alphabetical order.
Minor: changed overlapping gene joining from | to &; refactoring as constant.

Using & makes more sense conceptually (| can be used for when we're
uncertain about the location and think it's in ONE of the genes, as
opposed to in ALL of them!).

Made the join character a constant rather than a string literal, for
easier future changes.
Unit-test fix for new feature names.

Changed five_prime_UTR to 5'UTR and same for 3'; changed the number of
?? from 2 to 1 because one of them became MULTIPLE_SPLICE_VARIANTS;
modified the name of the input file in the unit-test docstring to the
correct one.