Make LocalTransactionSigner to sign P2SH inputs.

The idea is that LocalTransactionSigner should be the only signer using
local keys to sign, so that other signers need to care only about "external"
signatures.

Quick outline of changes:
Transaction inputs are now prepopulated with empty scriptSig. Each signer
is expected to update this scriptSig with a signature at a proper place. 
This is a controversial solution. Another option is to have signatures collected
in PendingTransaction object (see below) and populate input scripts in the end.
I'm not sure personally which solution is better.

There is a new method in RedeemData to locate index of the key/signature
within scriptSig/program. To generalize an above approach for all supported types 
of inputs, RedeemData class can now represent data for any type of input. For
pay-to-address and pay-to-pubkey inputs it is expected to contain single
key and CHECKSIG program.

Signers now accept ProposedTransaction object that can carry additional
metadata shared between signers. For now it shares derivation path of the
signing key.

To preserve the dummy sig feature, a new flag was introduced in a SendRequest.
It specifies whether to fill empty sigs with dummies during tx completion
or not. Default value is true (for backward compatibility).

There is a CustomTransactionSigner class that may be used as a base for
simple third-party signers (or may be not). It is used in a unit test which
could be treated as a usage example.
It works for multiple key cases, but, yes, only when local signing is possible. If it's not, then the whole thing may not work properly. For cases when local wallet has no keys (e.g. TREZOR) this would impose additional requirement on signers - the very first signer that got a signature should store the derivation path of the signing key here.  But I see no way how this requirement could be enforced.