Interpret text as Unicode rather than bytes

This fixes some regexps that contain Unicode characters and would
otherwise do unpredictable things.

It also allows us to detect and skip binary files.