protoRecordWithRecordResponseObject optimisation

I've added a prototype dictionary that's populated as they're created and allows for much quicker retrieval of the prototype records when compared the looping through them all and comparing primary keys.