tts/engines.cpp: don't require a cainteoir::document to be passed to tts::engines::speak

The old API would mean that the tts::speech object returned by
tts::engines::speak would hold onto the document, thus keeping
the document valid for the lifetime of the tts::speech object.

The new API does not hold onto a document object, requiring the
caller to ensure the document is valid for the lifetime of the
tts::speech object.

The rationale for this is that it simplifies the API, allowing
the caller to store the document as a stack-based object
instead of creating it as a shared_ptr.