better handle NetworkParameters in Address

 to allow other kind of networks that are not defined in the library.
I think this will result in regtest being returning as testnet3 (this was the case previously too)? If params (transient class var) is not null then why not just return that and then do the check (if it's has been set we know it is valid)?