Feature/conference refactor

**Work in progress; not ready for merge**

# Purpose
The conference submission service is largely untested. It's also currently hard to test, since it's mostly made up of a few large functions with many responsibilities. This patch refactors the existing code into smaller, most testable units, and tests those units.

# Changes
* Refactor conference submission logic into helper classes / functions
* Test refactored code

# Side effects
None expected
Why was this changed?