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
I thought using an array could somehow remove the need in `recordInConstruction`. We had a similar situation with ProtoElementInjector and ElementInjector. But I don't think it is possible here unless you build an array of records, which we probably do not want to do.

What are you thoughts on that? Do you think using an array is still worth it if we cannot remove `recordInConstruction`?