Add assertion macros; rename some exceptions; move no-merge run output into RunState; create initial implementation for DiskRun