embeddedclient: Expose handle_exception
Another sync (4f68ec3a)
Another sync (73e8b44a)
embeddedclient: Improve process_user_input API

Now it takes a buffer of bytes, instead of a file descriptor for stdin.
embeddedclient: Step one of something resembling a public API

Make terminaloverlay.h a public header, and don't include anything else
in embeddedclient.h.
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.