Robust event data

This removes the EventDataType func since the struct it is much better to be determined at the usage site.

also adds some correlation information into ActivityTasks where all ActivityTaskCompleted calls should wrap the result in a CompletedTask, which has extra correlation information that is needed to handle workflows with multiple activity types.