Irwin bmtagger

- Created partition_bmtagger and added a test for it. It partitions paired-end fastq files into reads that match at least one of a set of databases and ones that don't match any of the databases. It can be called without one or the other output arguments to create only one of the two outputs (selected reads or depleted reads).
- In preparation for further work in taxon_filter, added some comments parsing the long recipes and added noBlastHits_v3.py and mergeShuffledFastqSeqs.pl to scripts/.
- Added assert_equal_contents to test/init.py to compare test output files to expected.
- Changed tools.InstallMethod so base class keeps track of attempted stalls and subclasses don't have to; subclasses override _attempt_install instead of attempt_install.
- Changed open_or_gzopen to make mode argument optional and allow passing other arguments to open or GzipFile.
- Implemented Blastn tool (needed for bmtagger).