Sync with EVTV released code

EVTV has released the first official version of the GEVCU code. The biggest differences from what existed here:

1. Addition of cooling. The code can now turn on/off a cooling fan in response to motor controller / motor temperature
2. Fixed the precharge for the motor controller
3. Made the serial console look better.

All changes in this commit were initially done by Jack Rickard of EVTV and merged into this code base by Collin Kidder. Blame me if they're broken now.
Remove call to loadParameters which was added in the last commit. That line breaks the wifi connectivity.
Fixed config.h to properly default to using SerialUSB. 95% of everyone is going to need that default now.
Added a super secret command X - this will essentially cause a software reset without disconnecting the USB serial.

The potential utility for this command while debugging over SerialUSB should be obvious. What should also be obvious is that you should never use this command while connected to any important external hardware. The command just calls setup() again which reinitializes everything. But, the old data is not deallocated first. This is potentially dangerous (hence don't do it with stuff connected) but allows for developers to see the debugging text on start up even when connected over SerialUSB.

It would likely be wise to remove this command in builds destined for general use.
Add very early code for ELM327 emulation.

Requires a passthrough bluetooth adapter to be installed in place of the ICHIP wifi module. At this stage it would be best to configure your bluetooth adapter outside of GEVCU and leave it in passthrough for GEVCU to use.
Fixes to make the elm327 code compile. Also, integrated elm327 into the device manager and startup system so it is possible to enable and disable it now.
Semi working implementation of ELM327 emulator. Also, a new, more generic OBD2 handler that will be used both by CANPidHandler and ELM327Emu.
With this commit the project compiles and will successfully connect to torque and be seen as a valid ECU. However, look for next commit before it actually works properly.
There are actually two modes that the ELM327 can be in (that are relevant here): headers on, headers off. Now both versions are in code but only one is enabled. The next commit should have it all working.
Finished up code committed earlier. This should work now but is untested.
Fix a compile warning, fix output of OBD2 comm over ELM327 emulator with headers enabled.
Fixed bug in OBD2 - Code wasn't advertising two PIDs that we do in fact support.
Partial implementation of a command buffer for ichip - also some progress toward creating and reading a socket with the ichip.