Move sequencing code into sequence executor
Move sequence tracking code out of Executor.ProcessTransaction
into the sequence executor. This decouples sequencing from transactions, paving the way for non-transaction synthetic messages to be sequenced.