tyop.
AddressUsed: try all addresses in a transaction
call addr.lock() instead of handrolling.
Make AddressInfo an interface.

Shortly we will add new types of address, so make AddressInfo an
interface, with concrete types providing address-specific information.
Adapt existing code to this new status quo.
Prepare for adding other types of wallet addresses other than pkhash

Add a walletAddress interface to handle the differences betweent he
different types. Stop using btcutil.AddressPubKeyHash everywhere and just use
the standard address.
add very basic tests for privkey import.
Add support for pay-to-script-hash addresses to wallet.
Move walletAddress interface around a bit.

Move the stuff that scripts can't possibly support out of the interface
and move about two type assertions so that everything still works. They
key-using interfaces can be made into a KeyedAddress itnerface if we add
any more.
fix up old comment
Perform all serialization tests on a bytes.Buffer.