Store typed events differently

Rather than storing just the new entity, store the entire event
with the entity and principal json string replaced with the parsed
value