Fix up field position management

Description

If you need to remove or replace a field in a message, the position map must be linearly traversed each time. This sucks. We need to conditionally add a reverse position map - which is only populated if you remove or replace a field.

Environment

None

Assignee

David Dight

Reporter

David Dight

Labels

Branch

dev

Products

Pro

Components

Fix versions

Affects versions

Priority

Major
Configure