Doing a config push was working via `Atomic.wrappedValue` instead of `Atomic.mutate` - we need to use `Atomic.mutate` in this case because we want to block other threads from modifying the config while we are doing a push (otherwise it can crash due to data changing while generating the push payload)
• Reworked some of the C API conversions to try to prevent invalid cases
• Tweaked the threading around libSession networking callbacks to minimise Swift code blocking libSession threads
• More logging tweaks
• Fixed a bad memory crash which could occur when returning from the background
• Fixed an issue where config messages were incorrectly getting double wrapped in protobuf wrappers