Beginning of TransactionSign refactor (RIPD-480]

This refactor targets two objectives:

 1. Make unit testing of the transformation from JSON to
    Transaction possible.

 2. Eventually, have the same validation support for both
    singly-signed and multi-signed transactions.