Major refactor of the core to allow multiple features:
- Prompt function now return cancelable promise (e.g
input(...).cancel()
) - Reduced amount of writes to the readline (should now be ~1 per render cycle)
- Make sure to restore the cursor on force exit.