Changes to frontend

1) Do not allow multiple instances of the graphical client. This is done by
   opening a file in the system's temporary directory and locking it in
   exclusive mode.

   When `hamster-cli' is invoked but an instance of the frontend is found to be
   running its main window is displayed instead of a new instance being
   instantiated.

2) The persistent dbus service `org.gnome.Hamster.WindowServer' was removed in
   favour of a dbus service created only whilst the hamster frontend is
   running. The name of this new service is `org.gnome.Hamster.Frontend' .

   This new service exposes the same methods as `WindowServer' did albeit under
   different names. The interface allows the windows 'overview', 'preferences',
   'statistics' and 'about' to be easily displayed as well as the frontend's
   main window, a feature that was sorely missing.

   As before, it is possible to display any of the windows using the CLI.

   The new methods exposed by the dbus service are:

     void org.gnome.Hamster.Frontend.show_about_window()
     void org.gnome.Hamster.Frontend.show_overview_window()
     void org.gnome.Hamster.Frontend.show_preferences_window()
     void org.gnome.Hamster.Frontend.show_statistics_window()
     void org.gnome.Hamster.Frontend.show_main_window()
     void org.gnome.Hamster.Frontend.toggle_main_window()

Note: changes to code were kept to a minimum to preserve current design,
      structure, symbol naming and logic as much as possible.