Its pretty straightforward hardware wise. There are a few chips around with CAN, USB and UART, you can go the simple route for USB and use a serial<>USB converter like the FT232.
An AT90CAN with an MCP2551 CAN transceiver is what i had been using, but i honestly couldn't recommend that MCU since its really hard to source. It has some good example code to get you up and going in CAN.
After looking for a replacements I went for the ARM, intially the 2368 but with a recommendation from another poster on the forum, I'm looking at the LPC1768
http://www.nxp.com/documents/data_sheet/LPC1768_66_65_64.pdf which pretty much has everything you're looking at. They have some example code, not as much as Atmel, but enough to get you going.
Implementing USB isn't a walk in the park, people do struggle with it, but HID is easier, but easiest is the FT232, since it just appears as a serial port.