Further refining the Event export process

* Initial Export UI
* Export will work by retrieving a Dictionary of fields and values,
these will be merged (to account for per-event-type custom fields) in a
final step to ensure consistent CSV field placement
* Added an async progress object for export as well as a basic dialog to
go with it