Force stdout to UTF-8

Required to be able to log UTF-8 text as produced by tesseract.
OCR: refactor into seperate _tesseract function

This will be useful for adding additional functions which use tesseract.
OCR: Add optional "lang" argument

Different languages use different glyphs, have different charactor
frequencies and most dramatically have different words in their
dictionaries.  Our OCR engine uses knowledge of the language it is
attempting to read to resolve ambiguities and to weight different
possibilities.

This commit adds an optional argument "lang" to `stbt.ocr` so this
information can be passed through to the underlying OCR engine.
OCR: Return utf-8 object rather than string

Tesseract outputs utf-8 encoded text files.  This allows it to represent
characters outside of 7-bit ASCII such as "£", ligatures, etc.  Up till
now stbt.ocr has also returned strings with the content encoded in utf-8
within.  This is unhelpful if you want to compare against known strings
in a test script.  For example, previously:

    assert '£100' == stbt.ocr()

Would fail as '£100' cannot be represented in 7-bit ASCII.  and:

    assert u'£100' == stbt.ocr()

Would fail as stbt.ocr would return '\xc2\xa3100'.

With this change `stbt.ocr()` would now return u'£100' which is clearer
and simpler to deal with.  This is technically an API break but I don't
expect it to break any real-life test cases.
OCR: Report region searched within in debugging

This is particularly useful if the region is not hard-coded in the test
scripts but generated on the fly from what can be seen on screen.
OCR: Scale image up 3x before passing to tesseract

Reduces error rate by a factor of 6 in testing.  See blog post "Improving
OCR Accuracy" for more information:

[1]: http://stb-tester.com/blog/2014/04/14/improving-ocr-accuracy.html
OCR: Normalise similar looking but meaning free charactors from tesseract

Tesseract sometimes has a hard job distinguishing certain glyphs such as
ligatures and different forms of the same punctuation.  We strip out this
superfluous information improving matching accuracy with minimal effect on
meaning.

This means that `stbt.ocr()` gives much more consistent results improving
reliability when matching against known text or when comparing read text
between invocations of `stbt.ocr()`.

See blog post "Improving OCR Accuracy" for measurements and more
information:

http://stb-tester.com/blog/2014/04/14/improving-ocr-accuracy.html