This PR upgrades a number of libraries as well as nim itself, to address
security issues and crashes that we've worked to solve over the past few
months on the nimbus-eth2 side leading up to its 1.6 migration - they
include changes that are safe to use in both 1.2 and 1.6 without
requiring 1.6, making the code compatible with both versions.
In particular, 1.6 becomes more strict in several ways including
exception handling, style and certain langauge constructs related to
memory safety - as a result, we've cleaned up said libraries and
improved their stability overall, including fixing several crashes.
* nim 1.2.18 - this is the last release in the 1.2 series we produced
together with upstream based on nimbus' needs - between the version
Desktop is using today and v1.2.18, changes are predominantly backports
from newer Nim versions that we asked for while working on stability in
Nimbus itself.
* chronicles - cleanups
* confutils - cleanups
* faststreams - cleanups & crash fixes
* nim-json-serialization - several important crash fixes for json
parsing edge cases
* metrics - cleanups & threading fixes
* secp256k1 - upstream updates (including security fixes)
* serialization - cleanups
* stew - many convenience fixes and updates to common low-level
utilities, such as Result and hex / base64 / etc parsing
* stint - cleanups
* zlib - cleanups
* nimPNG - cleanups
* nimcrypto - cleanups
This is part 1 of library upgrades and focuses on the low-level
libraries - part 2 will upgrade the network stack (chronos, json-rpc,
web3, etc), keeping the two separate so as to limit the potential impact
of this PR.