Begin adding utf support functions that wrap ICU.
Add icu installation to travis-ci.
Add sentence and word segmentation to meta::utf.
Add ICU transliteration support to meta::utf.
Explicitly add which ICU components are needed.
Add encoding support to corpus and document classes.
Remove unneeded includes in util/utf.h
Add icu_tokenizer and icu_filter based on meta::utf.

Changes the default filter chain to use these instead of in-house
solutions that are not Unicode aware.
Attempt to fix travis-ci build.

(Not entirely sure why this caused a problem there that compiles properly
locally...)
Add utf8 length function to meta::utf.

This function measures the number of Unicode code points in the utf8
string.
Update length_filter to be unicode aware.
Make documents default to "utf-8" as encoding.

This fixes issues where the encoding is never set for query documents,
which we should assume are utf8 anyway.
Make icu_tokenizer remove newlines.

This is done because they confuse the sentence segmenter, and we don't
really need them in the IR tasks anyway.
Improve the performance of re-used utf::segmenter objects.

Previously, new icu::BreakIterators were created on every segmentation
call---instead, we can create these upon construction and re-use them
between segmentation calls.
Make icu_tokenizer re-use the same utf::segmenter between docs.
Special case the sentence boundary markers in icu_filter.
Merge branch 'develop' into icu
Add more transformation functions to meta::utf.

These will be useful in making the existing filters unicode-aware.
Make alpha_filter and lowercase_filter unicode aware.

This commit also changes the default filter chain to use these again, as
they are faster than invoking the equivalent icu_filter.
Special case sentence boundary markers in length_filter.