main: Add clean shutdown sequence + app: Add Shutdown() method

A clean shutdown sequence will be necessary in order to flush
outstanding data to the filesystem when Globster will eventually write
something to the filesystem in the future. It could also be used to
cleanly disconnect all hubs and (future) C-C connections, but I'm not
totally sure if that's a very good idea yet.

TODO:
- Update globsterctl
- Figure out what happens when the connection to dbus has been lost
  after this commit.
- Handle SIGTERM
globsterctl: Add shutdown command
main.c: Perform clean shutdown on SIGINT and SIGTERM
main.c: Perform a clean shutdown when D-Bus connection has been lost