Framework sprintf rework + Twizy version 2.4


Framework:

- Changed most net/net_msg sprintf() calls to stp utils
  (remaining are simple / single arg calls)
  Todo: net_sms
- Added stp_s() + stp_latlon(), replaced format_latlon() by stp_latlon()

- Added crash debug reason tracking, output in SMS "DIAG" command
- Added crash debug checkpoints (attempt to narrow down crash occurrences)
- Added server history MSG "*-OVM-DebugCrash" (sent on each server connect)

- Changed GPS initialisation to cold start recommendation (RST=0) and
  added GPS power on command (PWR=1) to coordinate request
- Changed GPS coord request scheme to once per second while car is on
  (instead of moving) else once every minute (instead of 5 minutes)
  to keep GPS awake and coordinates up to date

- Bug fix: changed crc variable for group 2 to &crc_group2

- Moved common utility macros from twizy module to includes


Twizy module version 2.4:

- Added charge time estimation for commands STAT? and CA?

- Added GPS track logging using history MSG "RT-GPS-Log" (with STREAM support)

- Moved regular data updates to notification function
- Moved notifications to vehicle_poll() hook

- Source code reformatting in style ANSI / indent 2
Merge branch 'master' of https://github.com/markwj/Open-Vehicle-Monitoring-System.git into temp-dexter
- sprintf() removed completely (net_sms, diag, net_msg, roadster)
  code size reduced by 3%

- Twizy charge time adjustment
- Added handling for SIM908 resets/crashes
Twizy module version 2.5:

- Split up battery MSG and separated from DataUpdate (due to size)
  (incl. implementation of MSG mode battery alerts)

- "CA?" now adds time estimation for full charge in any case
- Extended *-OVM-DebugCrash MSG by version information and moved
  crash debug functions from OVMS_DIAGMODULE to standard code

- Moved ovms_firmware[] array to ROM
Merge branch 'master' of https://github.com/markwj/Open-Vehicle-Monitoring-System.git into temp-dexter