Successfully processes a multi-signed transaction [RIPD-480]

This version of the code splits signature checking into two parts:

 - preCheckSign () verifies what it can without ledger access.
 - checkSign () does the rest of the signature validation.

There's still lots of clean-up, extra checking, and validation to
do.  But, as far as I can tell, this version of the code should
support multi-signing *any* kind of transaction.  Testing will tell.