Add a field to the OTA metadata structure indicating the oldest base
version it's safe to install this update /from/. This provides a clear
path forward in case there are incompatibilities, eg. some case
(bootloader compatibility) where 0.16.0 cannot be installed safely from
0.15.2, but a transitional 0.15.3 can arrange the groundwork.
Improves cache utilization as fewer things are passed via CFLAGS to
all files. In the event that no metadata is available, let the cpp
file handle warning about default usage.
Implement a comprehensive solution for validating a firmware before an
OTA updated is committed. WLED metadata such as version and release
is moved to a data structure located at near the start of the firmware
binary, where it can be identified and validated.
Co-authored-by: netmindz <442066+netmindz@users.noreply.github.com>