improve is_text_file() to not treat valid Unicode as bad_chars

In valid Unicode, first non-ASCII byte is always 11xxxxxx
and the following bytes are always 10xxxxxx.
Random binary data is likely to violate this rule *a lot*.

This patch makes bad_chars++ decision only if it sees a non-ASCII
byte which violates the rule described above.

Also, it makes immediate decision "it's binary"
not only on NULs, but on any non-whitespace control chars.

This hopefully improves handling of the problem
identified in rhbz#922433

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Signed-off-by: Jakub Filak <jfilak@redhat.com>