feat(ProtoRecord): Simplify by dropping the linked list in favor of an a...

...rray

@vsavkin could you please review. I have also added some todo, feel free to comment them
Using an array saves 2 fields (next, prev) on each protoRecord - actually one field as prev was unused & simplify the code (no more link to maintain).

IMO removing recordInConstruction is an other topic. To remove it we need to build a map proto to record. It would save one more field but has a performance impact (accessing a map by key vs a field).