Port to GtkApplication

We're going to start using application actions, and composite templates,
which requires us to be using GtkApplication to really take advantage
of everything that is available.