Extract out EventID.

This feels less error-prone than passing around two IDs.
Added EventID formatting and parsing.
Re-do HTTP support.