Fix stack bug overwriting preset associations

This fixes a bug in stacks that would overwrite preset
associations. This only happened when a record had multiple
associations to the same kind of record. Stacks try to be
efficient and only build a single instance for every record
class. When 2 associations for the same record class exist and
one is preset, sometimes the stack would overwrite the preset
because it got to the association that wasn't preset first. This
would trigger it to build a new instance, and then it would later
use this new instance to overwrite what was preset. This changes
the stacks to be more aware of preset associations. They will
process them first now and ensure they won't accidentally
overwrite a preset value.