Finally add support for watch-only addresses

Rebased and improved version of #3383

Based on a patch by Eric Lombrozo, further work by Pieter Wuille and JaSK.

- unspent outputs have a spendable=true/false property to mark watchonly outputs
- Some compatibility work for interaction with coin control was added by Pieter
- the GUI now displays watchonly balances separately. the layout could be improved, but it works
- getbalance, listaccounts, listtransactions and listsinceblock by default ignore watchonly addresses
- transaction details returned by ListTransactions in RPC replies have an involvesWatchonly=true property if they involve watchonly addresses.

I haven't done much testing with this yet but i don't think it needs any major changes.
Most of the commits are optional.