This is the final commit of the long-lived control replication branch. Control replication adds support for replicating logical tasks into implicit shards which can run in parallel but still behave as one logical task. To make control replication possible a number of fundamental changes had to be made to the internal Legion architecture and required significant modifications to how Legion works internally. The version of Legion after this branch lands in the master branch bears little resemblance to the version of Legion that preceded it.