Support building a "disarmed" target via the OLM_FUZZING macro.

Like other crypto libs, libolm contains many obstacles which a fuzzer is
unlikely to be able to surmount but which are not important for the end
goal of fuzzing. The easiest and most robust way around this is to remove
these obstacles conditionally when building the fuzzer binaries.

This commit adds a preprocessor macro OLM_FUZZING which can be used to
conditionally disables problematic bits of code during compile-time for
easier fuzzing.

Currently the only thing it disables is the encryption/decryption and
base64 encoding/decoding when processing pickled Megolm keys. This
allows the fuzzers to fuzz the unpickling functionality directly without
inadvertently fuzzing the base64 encoder and encryption (which should be
fuzzed separately).

The macro is set in the Makefile *only* when building fuzzer binaries.
2 jobs for dkasak/disarmed-variant-support-for-fuzzing in 3 minutes and 53 seconds (queued for 13 seconds)
Child pipeline (parent)
Status Name Job ID Coverage
  Build
passed build:js #23591

00:01:42

 
  Test
passed test:js #23594

00:02:11