split out text-breaking logic so that it can be used by Dispatcher.display_messages as well as Dispatcher::Box
make direction choosing respect arrow keys