API: Region: Add extend method

Often you will want to pass a `Region` to a stbt function, and that
`Region` be based on a `Region` returned from another method, but with
modifications.  `Region.extend()` makes this easy and convenient.

This is a dependency of stbt.match_text coming in a future commit.
API: Region: Add method `intersect()`

This makes it convenient to find out whether two regions overlap, and if
they do what the overlapping `Region` is.

This is a dependency of `match_text` added in a future commit.
Region: Check that we are constructing a valid Region

A debugging aid which was helpful to me when implementing `match_text`.
API: OCR: Add stbt.match_text()

`match_text` is intended to be used like `detect_match`, etc, but for
text.  You search for a specific piece of text and it returns extra
information including the bounding box of the detected text.

It uses the tesseract hOCR mode.  hOCR is an XHTML subset with additional
information embedded such as word locations.