System functions created and bug fixes for can.c

The following bug fixes have been resolved
* Fixed can registers so that it isn't changed without the shadow registers
* ECAN_REGS structure not redefined within structures

Also have added separate system functions where non-user code was found. This code has NOT been tested, only compiled.