Filter 'large' files, up to a size threshold (fixes #2)

Also adding charset-aware code, in the hope that the BFG will correctly
deal with (and not corrupt) non-UTF8 files... the tests for the encoding
were very valuable in getting this to a working state!

The ICU library used for detecting charset encoding is compatible with
the GPL:

http://userguide.icu-project.org/icufaq#TOC-How-is-the-ICU-licensed-

Unfortunately instances of ICU4J's CharsetDetector are NOT thread-safe:

http://bugs.icu-project.org/trac/ticket/9657

ICU4J's CharsetDetector is also pretty slow (maybe out of necessity,
but there's also some duplication of effort between it's 30 or so
CharsetRecognizers). Apart from that it works quite well, so it's
staying in for the moment, but I'll probably switch to a
quick-and-dirty alternative as the default option at some point.