core::rt Wire up task-local storage to the new scheduler
core::rt: Make I/O constructors return Option instead of Result

For consistency, for all I/O calls, inspecting the error can be done with
the io_error condition.
core::rt: Move the definition of Listener to rt::io
Make conditions public. #6009
core::rt: Add implementations of Reader, Writer, and Listener for Option

These will make it easier to write I/O code without worrying about errors
core::rt: Add unwinding to newsched tasks