APP-306: best practice error handling
Refactor so that the io module raises pythonic errors (TypeError, ValueError und RuntimeError) and the impl classes then process these errors and raise sila errors.
Untested. @lukas.bromig will test on Monday 22.04