Add length sanity checks

The ZRTP code uses these sanity checks to see if a packet has given minumum
length. If this is not the case we report an error and stop further ZRTP
negotiation. The ZRTP code performs these sanity check before it applies the
real checks using the hash chain and the HMACs. The additional sanity checks
may avoid crashes in border cases:

If an attacker creates a really short packet (length of a HelloAck packet) but
it poses as a longer packet (Commit for example), and if the packet has a
memory start address that's near a read protected memory area then reading the
data to perform Hash/HMAC checks would access the protected area which could
lead to a crash.

These additional checks were proposed my Mark Dowd.
Merge branch 'checks' into develop