Addresses a bug in the decode function not returning correct values. The main decode method has been cleaned up and revamped to handle data appropriately. Decoded data was validated against time tested tools such as MATLAB's VNT toolbox and Kvaser's CANKing. A bunch of unit tests were added to support these changes.
Added some additional utility functions on the Can class so that it's easier to create BoundMessages.
This pull request does a few things: