Load interfaces in IO monad

Load Prelude.interfaces in IO monad instead of using `unsafePerformIO`.

Is there a reason to use `unsafePerformIO` other than the annotation that it's in the IO monad in a couple more places?

This commit also prints errors when they occur loading interfaces to stderr instead of stdout.