Runtime: Added clear_array().
Backend: Invalidate the call_out id when stale.

Reduce garbage by not keeping references to arguments for dead call_outs.

It is not unusual for a call_out user to keep the call_out id until
the next time the call_out is needed. As these quite often cause
circular references, we need to zap them when they're no longer needed.
Initial implementation of multi-char character constants.

'abcd' is now the same as ('a'<<24)|('b'<<16)|('c'<<8)|'d'.
Add a note about multi-char character constants
Avoid a lot of warnings.
memset != memcpy, I assume this should have been memcpy.
Handle a few more BMP variants in a somewhat ugly fashion.
Image.Colortable: typo in error message
overflow checks: generate overflow checks for 8 and 16 bit integer types

even though llvm internally has apis for checking overflow of 8 and 16 bit
integer arithmetic, those are not available through clang intrinsics. we
therefore use the same checks as for other compilers
Image.PNG: do not overwrite elements in returned mapping

The code handling private chunks allowed a png file to overwrite entries
in the return mapping (those with 4 byte length). While that only
applies to sbit and time chunks, its not a useful feature.
Image.PNG: use local variable to access chunk data

This also fixes an out of bounds access to the colour table. The
colour table entry in bKGD chunks was treated as _signed_ char and could
therefore lead to an access up to 128 entries before the actual table.
stralloc: const-correctness
Image.PNG: use bignum api for image size overflow checks
Image.PNG: use local variables in all cases
Image.PSD: some simple integer and buffer overflow checks
Image.BMP: validate bmp image data offsets
Testsuite: Added tests of Nettle.POLY1305_AES.
Testsuite: Added tests of some HMACs.