Added protocols for I/O providers, renderers, viewers, and serializers.

The namespace loom.io is now a simple placeholder for default providers.
The latter are defined in the loom.io.* namespaces.