Optionally restart order phase with randomly shuffled layers

Running the order phase with shuffled layers appears to yield
significant reductions to crossing counts. It fixes #53 and #85 with a
low restart count (orderRestarts=1 yields the optimal solution in many
cases).

To use the feature, use the following:

```
g.graph().orderRestarts = x;
```

where x is the number of restarts.

If orderRestarts is undefined it is treated as 0, which runs the order
phase once without shuffling the layers. This matches the previous
functionality and yields stable results across runs.

For now we'll leave this as an experimental feature.
Prep v0.4.2 release