Roughing support

Roughing support for the core top profile program. Off by default since it's still a bit experimental. I'm not happy with how the per-level roughing passes are joined on the tail side right now, but otherwise this seems pretty reasonable.