Minor additions

* Added support for custom I/O streams, necessary for UI wrapper
* Changed launch-in-current-directory functionality to not rely solely on the `editor` module