Cleaned up the group parser

I have cleaned up and finished refactoring the group parser.

The group parser was moved to the controller and returns group data,
finally removing all use of direct regex functions to the controller.
Also added an update callback so that the controller can tell the view
when it should update. This means we can force an update from more
circumstances in the controller and aren't relying on the view to watch
everything.

Deleted workspace.py