Isolate CAN Channels from CAN Module

This was *really* messy. Needs to be reviewed. in the future, Module
should implement a specialized container for Channels.

Also now, Channel stream operators could be safely overloaded. Or use
builtin istream/ostreams.

Also several values in errorcodes.h conflict with the builtin errno.h
file.