tts::phoneme_parser: add an initialize method

The espeak and arpabet phoneme parsers are state-based. That is,
they keep track of information during parsing.

In the dictionary application, if a phoneme_error exception occurs
when it is trying to parse pronounced phoneme transcriptions, the
phoneme parsers are left in a partial state. This is problematic,
especially for the espeak parser if it is within a language context
(`(lang)...(lang)`) as it will process the phonemes from that point
in the language that was switched to, not the language specified.

To resolve this issue, an initialize() method has been added to
the phoneme parser interface allowing the espeak and arpabet parsers
to reset their states. This is called by the phoneme reader wrapper
when reset() is called ensuring the parsing of a new buffer starts
in a clean state.