message: [RPC] Add more verbosity to validateaddress
  Allow validateaddress to return more details about P2SH (multisig)
  addresses by removing the needless check against ISMINE_NO.
diff: @@ -246,7 +246,6 @@ public:
  UniValue operator()(const CScriptID &scriptID) const {
  UniValue obj(UniValue::VOBJ);
  obj.push_back(Pair("isscript", true));
  - if (mine != ISMINE_NO) {
  CScript subscript;
  pwalletMain->GetCScript(scriptID, subscript);
  std::vector<CTxDestination> addresses;
  @@ -261,7 +260,6 @@ public:
  obj.push_back(Pair("addresses", a));
  if (whichType == TX_MULTISIG)
  obj.push_back(Pair("sigsrequired", nRequired));
  - }
  return obj;
  }
  };
  @@ -345,8 +343,11 @@ UniValue validateaddress(const UniValue& params, bool fHelp)
  "{\n"
  " \"isvalid\" : true|false, (boolean) If the address is valid or not. If not, this is the only property returned.\n"
  " \"address\" : \"pivxaddress\", (string) The pivx address validated\n"
  + " \"scriptPubKey\" : \"hex\", (string) The hex encoded scriptPubKey generated by the address\n"
  " \"ismine\" : true|false, (boolean) If the address is yours or not\n"
  + " \"iswatchonly\" : true|false, (boolean) If the address is watchonly\n"
  " \"isscript\" : true|false, (boolean) If the key is a script\n"
  + " \"hex\" : \"hex\", (string, optional) The redeemscript for the P2SH address\n"
  " \"pubkey\" : \"publickeyhex\", (string) The hex value of the raw public key\n"
  " \"iscompressed\" : true|false, (boolean) If the address is compressed\n"
  " \"account\" : \"account\" (string) The account associated with the address, \"\" is the default account\n"
  @@ -370,14 +371,15 @@ UniValue validateaddress(const UniValue& params, bool fHelp)
  CTxDestination dest = address.Get();
  string currentAddress = address.ToString();
  ret.push_back(Pair("address", currentAddress));
  + CScript scriptPubKey = GetScriptForDestination(dest);
  + ret.push_back(Pair("scriptPubKey", HexStr(scriptPubKey.begin(), scriptPubKey.end())));
  +
  #ifdef ENABLE_WALLET
  isminetype mine = pwalletMain ? IsMine(*pwalletMain, dest) : ISMINE_NO;
  - ret.push_back(Pair("ismine", (mine & ISMINE_SPENDABLE) ? true : false));
  - if (mine != ISMINE_NO) {
  - ret.push_back(Pair("iswatchonly", (mine & ISMINE_WATCH_ONLY) ? true : false));
  + ret.push_back(Pair("ismine", bool(mine & ISMINE_SPENDABLE)));
  + ret.push_back(Pair("iswatchonly", bool(mine & ISMINE_WATCH_ONLY)));
  UniValue detail = boost::apply_visitor(DescribeAddressVisitor(mine), dest);
  ret.pushKVs(detail);
  - }
  if (pwalletMain && pwalletMain->mapAddressBook.count(dest))
  ret.push_back(Pair("account", pwalletMain->mapAddressBook[dest].name));
  #endif
  