Introduce `sourceIO` which source an `IO` action.

The more sophisticated function is now `sourceIOWith`.
Reorder functions in `System.IO.Machine` module.
Introduce `DataModeIO` alias and refactor remaining `IO` specific functions.