Use CBitcoinAddress instead of string/uint160

Instead of conversion functions between pubkey/uint160/address in
base58.h, have a fully fledged class CBitcoinAddress (CAddress was
already taken) to represent addresses.
Namecoin: fix conflict