Register channel providers

This only loads each module once per session and stores it, instead of
loading it every time it's needed.