Three commits:
- The first one gets rid of the global ‘mapPubKeys’, by indexing keys by address instead of by pubkey. This brings a consistent interface to CKeyStore, and testing for ownership of a key becomes a call to CKeyStore::HaveKey(), instead of doing a lookup in mapPubKeys.
- The second one introduces the class CBitcoinAddress - represented by its raw data bytes (20 bytes containing the Hash160 of the pubkey), but convertible to string representation. In most places in the code, the use of a strAddress or hash160 as address identifier is replaced with CBitcoinAddress. (CAddress already existed, so I needed another name)
- The third one splits code not specifically related to addresses into a common CBase58Data