When importing a watch-only address over `importmulti` with a specific timestamp, the wallet's `nTimeFirstKey` will be set to 1.
I think we should add a optional timestamp to `CWallet::AddWatchOnly()` and use it when importing addresses or pubkeys.

const int64_t timestamp = std::max(GetImportTimestamp(data, now), minimumTimestamp);
        const UniValue result = ProcessImport(data, timestamp);
        response.push_back(result);
        if (!fRescan) {
            continue;
        }
        
        if (result["success"].get_bool()) {
            fRunScan = true;
        }
        
        if (timestamp < nLowestTimestamp) {
            nLowestTimestamp = timestamp;
        }
    }
    if (fRescan && fRunScan && requests.size() && nLowestTimestamp <= chainActive.Tip()->GetBlockTimeMax()) {
        CBlockIndex* pindex = nLowestTimestamp > minimumTimestamp ? chainActive.FindEarliestAtLeast(nLowestTimestamp) : chainActive.Genesis();
        if (pindex) {
            pwalletMain->ScanForWalletTransactions(pindex, true);
            pwalletMain->ReacceptWalletTransactions();
        }
    }
    return response;
}