[tests] Port everything to GuiUnit and add it as a submodule

This allows us to
1) Use async tests, if we want.
2) Have our tests run inside the Gtk main loop (if we want)
3) Get updates on the fly as the tests execute

This is a better library for us to use for unit testing as
the test runner it uses is much easier to integrate with
monodevelop