restart sqlite branch with sqlite_map
Tentative updates to sqlite map.

Switching to prepared statements and adding the "PRAGMA" stuff improves
performance dramatically, but it's still rather slow.
Merge branch 'master' into sqlite
Update CMakeLists to avoid having to specify ldflags on command line.
Add sqlite dependency.
Switch tokenizer to use a sqlite_map internally.

Add a cache to the sqlite_map so as to preserve performance when data fits
in memory. Current cache size is fixed and not parameterizable---it's
worth making that a config option in the future (perhaps in GB?)
add progress output for line counting
change _term_bit_location to a disk_vector
Change chunk sizing to be based on in-memory chunk sizes.
Place temporary chunk files inside the index directory.
Change _doc_ids_mapping to a sqlite_map.
Change compressed file reader/writer to take general "mapping" functions.

This is in preparation for switching the compression mapping to a
sqlite_map. Improvements have also been made to sqlite_map.
add progress output for everything in disk_index
Make disk_index compression use sqlite_maps to support large datasets.
Merge branch 'sqlite' of bitbucket.org:smassung/meta into sqlite

Conflicts:
	include/index/disk_index.tcc
this includes multiple experiments to test indexing speed, beware!

includes porter2 stemmer static change

string -> count for doc count mappings

disk_index now is in control of setting the term_id mapping

this commit has a hack to test wikipedia: doesn't count line numbers and stops
after indexing 20,000 docs
have stemmers only pass string references, no string constructors
add simple tester for tokenizers
use std::array<bool, 256> instead of std::unordered_set<char> in io::parser

(this actually does make a slight noticeable speed difference; no iterators, etc)
make ngram_word_tokenizer more efficient
 - more delimiters == less weird terms
 - simplier ngram generation