Add support for watch-only addresses

Changes:
* Add Add/Have WatchOnly methods to CKeyStore, and implementations
  in CBasicKeyStore.
* Add similar methods to CWallet, and support entries for it in
  CWalletDB.
* Make IsMine in script check HaveWatchOnly in case a new parameter
  fRequireSpendable is not set.
* Make SelectCoins pass the fRequireSpendable down, so it doesn't
  consider coins for which we don't have a key.

Based on a patch by Eric Lombrozo.