Suspend compaction during cleanup

Suspend database compaction during transaction output cleanup.  Compact
the database after cleanup is completed.
SIGHASH_SINGLE error for input > output

The reference client doesn't handle the case where the input index+1 is
greater than the number of outputs.  Instead, it uses the error code as
the transaction hash.