Small improvements.

* Commute degeneration now runs only one loop.
* CommitSubscription uses a privileged side effect for dictionary, which
means that it's side effect will execute first, to protect it from the possibility
of other side effects throwing exceptions.