Dialogs don't rely on pychan's execute anymore

This way it is easier to see how the synchronous dialogs work. The
implementation is easy enough and isn't specific to pychan nor guichan.