How can my library source code instantiate an object from another library?
Why not have your class just extend the MFRC522 class?

#include &lt;MFRC522.h&gt;

class UltimateRFID : public MFRC522 {
    private:
        MIFARE_Key key;

    public: 
        UltimateRFID(uint8_t ss, uint8_t rst) : MFRC522(ss, rst) {}
        // your other methods
        void initialize();
};

void UltimateRFID::initialize() {
    //digitalWrite(49, HIGH);
    digitalWrite(2, LOW);
    for (byte i = 0; i &lt; 6; i++) {
        key.keyByte[i] = 0xFF;
    }     
    PCD_Init();
    if ( ! PICC_IsNewCardPresent()) {
        return;
    }
    if ( ! PICC_ReadCardSerial()) {
        return;          
    }
}

UltimateRFID rfid(53, 5);

void setup() {
    rfid.initialize();
}

void loop() {}


Your class then becomes a "flavour" of MFRC522 with additional functionality. It can access all the public functions of the MFRC522 class, since they are now a part of your class. 

Anything you can do with an MFRC522 object you can now do with your object. As well as your extra functions.