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.

if (!ser_action.ForRead())
        {
            mapValue["fromaccount"] = strFromAccount;
            WriteOrderPos(nOrderPos, mapValue);
            if (nTimeSmart)
                mapValue["timesmart"] = strprintf("%u", nTimeSmart);
        }
        READWRITE(*(CMerkleTx*)this);
        std::vector<CMerkleTx> vUnused; 
        READWRITE(vUnused);
        READWRITE(mapValue);
        READWRITE(vOrderForm);
        READWRITE(fTimeReceivedIsTxTime);
        READWRITE(nTimeReceived);
        READWRITE(fFromMe);
        READWRITE(fSpent);
        if (ser_action.ForRead())
        {
            strFromAccount = mapValue["fromaccount"];
            ReadOrderPos(nOrderPos, mapValue);
            nTimeSmart = mapValue.count("timesmart") ? (unsigned int)atoi64(mapValue["timesmart"]) : 0;
        }
        mapValue.erase("fromaccount");
        mapValue.erase("version");
        mapValue.erase("spent");
        mapValue.erase("n");
        mapValue.erase("timesmart");
    }
    
    void MarkDirty()