ESP32 users need to call SPI.begin() with custom pin assignments before
using the library (GPIO matrix). The hardcoded SPI.begin() in
mcp2518fd::begin() overwrites this configuration.
Changes:
- Replace SPI.begin() with pSPI->begin() (consistent with MCP2515)
- Add optional _initSPI parameter (default true) to begin() across
MCP_CAN, mcp2515, and mcp2518fd so ESP32 users can skip SPI init
Existing code is unaffected — default behavior unchanged.
Closes#158
Co-authored-by: pillar1989 <zuobaozhu@gmail.com>