Added dealing with adjacent-position cassette-side reads in same mutant.

Changed from sequences_and_counts to sequences_counts_positions_errors,
which keeps the position and #errors for each sequence.
Changed it so that add_read never checks position (removed
update_check_position method), and instead there's a separate
decide_and_check_position method to run afterward.
Renamed sequences_and_counts to sequences_counts_positions_errors
everywhere.
Added sequences_counts_positions_errors property to multi-dataset
mutants, that's the sum of all the component ones.
Added max_allowed_cassette_side_dist=1 arg to
Insertional_mutant_pool_dataset.add_RISCC_alignment_files_to_data, which
now runs mutant.decide_and_check_position with that arg.
Added unit-tests for decide_and_check_position, and for
add_RISCC_alignment_files_to_data with max_allowed_cassette_side_dist
different values, on realistic input file (new file:
test_data/INPUT_RISCC2-alignment-cassette-side.sam). Added
--max_allowed_cassette_side_dist command-line option to
mutant_count_aln_IB+RISCC.py.

Removed unnecessary mutant attributes/methods:
unique_sequence_count ( = len(sequences_counts_positions_errors),
add_counts, add_sequence_and_counts (should never be used in practice,
only in tests).  Had to do a fair amount of rewriting unit-tests to
remove all uses of add_counts/add_sequence_and_counts.

Also implemented ignore_unaligned in add_RISCC_alignment_files_to_data
(this should really be in a separate commit, but it was simple).  Added
--ignore_unaligned command-line option to mutant_count_aln_IB+RISCC.py.

Also some refactoring:
 - made get_position_distance function and used in _if_confirming_read
 - simplified _get_main_sequence_from_data to use more sensible sorting
   with key function
 - refactored unit-tests test__give_single_dataset_mutant and
   test__give_all_single_dataset_mutants to use new _make_multi_mutant
   and _check_single_mutants help functions.

All unit-tests and run-tests pass.