engines: track the current toc entry

This implements the logic within tts::engines::speak and the
returned tts::speech object to keep track of the current toc
entry.

Whenever the current document_item being read contains an anchor
to the next toc entry, the new tts::speech::toc_entry value is
updated to refer to the new toc entry. This allows clients (such
as cainteoir-gtk) to track the active toc entry and update the UI
accordingly.

In the future, this will also trigger a tts::audio::onchapter
event to be fired, allowing audio objects that support chapters
to insert a chapter marker at that point.