Major cleaning/refactoring.

- More logic is factored in the new MWCoordinator class
- No more mutable states
- All the states are accessed through Stream's defined in the
MWCoordinator class
- Cleaned up the Visualizer class.
- Visualizer now displays strategies of different groups in separate
subplots.
- Selecting the update rule is now done by passing an extra argument to
the MWAlgorithm constructor.