Update mcp_can.cpp

Cleaned up mask and filter initialization.
Fixed read_id function bug that causes 0x10000 to be subtracted from an extended ID having a value greater than 0x18000.
The bug stems from shifting the bits over 16 and then adding to it.  Seems to cause undesirable results.