RealmとObjectMapper(https://github.com/Hearst-DD/ObjectMapper)を組み合わせで以下のようなモデルを作っているのですが、このモデルを User(forPrimaryKey: "1") の呼び出し方でインスタンス化しようとした場合、Cannot invoke initializer for type 'User' with an argument list of type '(forPrimaryKey: String)' と怒られてしまいます。

class User: RLMObject, Mappable {

    var id:String?
    var name:String?

    required init?(_ map: Map) {
        super.init()
        mapping(map)
    }

    func mapping(map: Map) {
        id <- map["id"]
        name <- map["name"]
    }

    override class func primaryKey() -> String {
        return "id"
    }
}

おそらく、RLMObjectクラスとMappableプロトコルの多重継承が原因だとおもうのですが、なぜMappableプロトコルを継承すると、User(forPrimaryKey: "1") が利用できなくなるのが理解できておりません。
RealmというよりはSwiftの言語利用の話になると思うのですが、ご存知の方、お手数ですがご教授いただけると助かります。

Mappableプロトコルの内容は以下です。

public protocol Mappable {
    init?(_ map: Map)
    mutating func mapping(map: Map)
}

再現コードを以下に置きます。
https://github.com/okitsutakatomo/RealmWithObjectMapper