Using convenience accessors available in class

Were doing things the long way around in several spots, consolidated down to
use the accessors and ivars we've already got.
Follow convention of requiring in top-level files
Don't need to fully qualify this
Merge pull request #537 from shoes/text_flow_tidying

Text flow tidying
Refactoring and removing unneeded cursor logic

Some of the logic flow of positioning the cursor was relying too much on the
order to determine if we were in a single layout. Turns out, that wasn't
necessary given the later checks for exceeding the full text length, so cleaned
that up.

Also extracted some more precisely named methods for how things get positioned
to help with readability.
Move logic that uses first line height to cursor

The cursor height was the only thing that was relying on the method that
assumed all line heights were the same. Given that, move it over to the cursor
which can do whatever it wants later on, and get that methd out of the broader
interface.
Removing an unnecessary moving_next check
Better name for height condition

If we're at the start of a new container, or if the preceding element has used
up all the horizontal space above us, then the y and next_line_start of the
current position will be equal.

This commit doesn't change the logic, but instead gives it a name so it's more
comprehensible.
Merge pull request #547 from shoes/text_cursor_tidy

Text cursor tidy
Merge from master
Update textcursor specs