upgraded benchmarking code
yet another benchmark for Kevin Rue's use case
optimized find_near_matches_generic_ngrams and added has_near_match_generic_ngrams

Conflicts:
	benchmarks/__init__.py
	benchmarks/__main__.py
added has_near_match_substitutions_ngrams

Conflicts:
	benchmarks/__init__.py
added some tests for has_near_matches_*

Conflicts:
	tests/test_generic_search.py
	tests/test_substitutions_only.py
fixed major bug in *_near_matches_generic_ngrams()
optimized ngrams versions of levenshtein and subs-only searches
added substitutions_only_has_near_matches_byteslike to benchmarks
added common.count_different_items_with_max(seq1, seq2, max_different)
added C extensions and changed to single-source code