Load interfaces in IO monad

Load Prelude.interfaces in IO monad instead of using `unsafePerformIO`.

Is there a reason to use `unsafePerformIO` other than avoiding the IO annotation on a couple of functions?

This commit also prints errors when they occur loading interfaces to stderr instead of stdout.