GH-79: backport supposed fix for vuln-modmul

"Fix an array-size bug in modmul, and add some tests for it."

svn://svn.tartarus.org/sgt/putty@9977
GH-79: backport supposed fix for vuln-bignum-division-by-zero

The bignum code has two representations of zero, since
bn_restore_invariant (and the many loops that duplicate it) leaves a
single zero word in a bignum representing 0, whereas the constant
'Zero' does not have any data words at all. Cope with this in
bignum_cmp.

(It would be a better plan to decide on one representation and stick
with it, but this is the less disruptive fix for the moment.)

svn://svn.tartarus.org/sgt/putty@9996

Conflicts:
	sshbn.c
GH-79: Backport fix for private-key-not-wiped

Another couple of memory leaks.

svn://svn.tartarus.org/sgt/putty@9988
GH-79: smemclr for private-key-not-wiped