Another sync (21c00b32)
emdriver: Unify last-chance catch cases (simplifies demands on public API)
embeddedclient: Step two of something resembling a public API

Clean up two of terminaloverlay.h's includes, and move some of its
inline functions to terminaloverlay.cc.
embeddedclient: Step three of something resembling a public API

Change PredictionEngine::parser to a pointer, so that we can get away
with a forward declaration; move PredictionEngine's ctor and dtor out of
the header file so that new and delete on parser are called where
UTF8Parser is properly defined.
embeddedclient: Now we have something resembling a public API

Make terminalframebuffer.h a public header.