bignum: reorganized overflow checks and use clang intrinsics
gc: avoid lsh overflow in lookahead block check
program: check lfun number before accesing array

this led to out of bounds reads when accessing lfuns like _random
cpp: do not read outside of string boundaries
some portable helpers for unaligned memory access

unlike manually shifted bytes, memset() gets optimized to one
load/store on x86.
portability: avoid misaligned access
optimization: use new unaligned helpers
Unicode.normalize: use unsigned ints for hash value

hval % HSIZE for a negative hval will result in a negative htable index.
this is triggered by characters in 32 bit strings which are represented
by negative 32 bit signed integers
type system: prevent signed integer overflow
portability: use arithmetic left shift explicitly

this prevents left shifts of negative numbers, which is undefined
svalue: prevent shift overflow when building typefield
mostly harmless overflows, fixed
use OFFSETOF
Image: don't divide by zero
Image.phase: fix conversion error

these color values are in 0..255, so use unsigned char instead of char.
Stdio.File: signed integers don't overflow in C

checking for signed overflow using (r<<1) < r does not work. the purpose
of these checks is a mystery to me, though.
Image.JPEG: typo in FAKE_DYNAMIC_LOAD check
Image.WebP: free image program on EXIT
SSL.connection: Implement 1/(n-1) measure against BEAST.

Improve resilience against the BEAST client-side attack,
by splitting the first data packet into two, where the
first only contains a single byte of payload.