Make a proper GtkApplication subclass

Introduce GsApplication, and move all of the startup code
there. main() is now pretty clean and essentially just a
small wrapper around g_application_run().

On of the advantages of the commandline handling here is that
you can now call gnome-software --mode=updates to switch tabs
in an existing gnome-software instance, which will become
important when we start gnome-software from notifications.