Network update optimizations

This pull request implements two related network update optimizations for the controller which result significantly decreased network churn and convergence.

The first optimization performs an equality check on the controller's current policy and the latest policy update the toplevel policy application produced. If the equality check succeeds, then no switch configuration needs to be updates and the policy update is discarded.

The second optimization is similar to the first, except applied to per-switch policy updates. Even if the global policy update is not equal to the controller's current policy, per-switch fragments may be equal. Before each switch update is executed, the controller checks the equality of the switch's current policy fragment against the policy update that should be applied to the switch. If they are equal, then the update is skipped. This optimization is only implemented for the best effort policy update algorithm.