risu: re-factor master/apprentice_sigill [WIP]

Move all the common functionality into the main risu.c functions and
expand the $ARCH API to enable this to work cleanly. This is a precursor
for adding common trace/playback support.

[WIP] Only fixed up aarch64 backend so far

---

v2
  - move apprentice_memblock into risu.c
  - clean up doc strings
  - use more argument passing
risu: Add simple trace and replay support

This adds a very dumb and easily breakable trace and replay support to
the aarch64 build of risu. When --trace is specified instead of
sending/receiving data from a socket paired with a remote risu instance
the data is instead written/read to/from a trace file.

Currently there is no validation of the image source so feeding the
wrong image will fail straight away.

To avoid the trace files getting too big we use libz to compress the
data stream on the fly as the majority of the data is unchanging.