Added handling of command line arguments.

Initial arguments that are supported are:
  -h, -?   --help         Print this help message and exit
  -v       --version      Show version information and exit
Added an argument to indicate a different config file.

This adds support for using a configuration stored in a different
location than '~/.config/taffybar/taffybar.hs', and therefore
theoretically also for running multiple instances of taffybar at once.

Due to the use of Config.Dyre, we cannot easily use arbitrary filenames
--- only a different directory can be set, which has to contain a file
called 'taffybar.hs'. For this the data field Dyre.configdir has been
set. Because running multiple instances with different configurations
should now be possible, it doesn't make sense to compile to the same
executable --- therefore the Dyre.cachedir data field has also been
changed. To pass through the FilePath that sets these directories,
TaffybarConfig has been appended with a field cfgdir :: Maybe FilePath,
where a Nothing would indicate the default should be used.

Two limitations with the current implementations exist:
 1) Only absolute paths can be used, relative paths make the
      recompilation fail with the error:
        Error occurred while loading configuration file.
 2) If a config file at the original location
      (~/.config/taffybar/taffybar.hs) still exists, the one at the
      location indicated by the argument is loaded, but then overruled
      by the original. So to use this, the original file should be
      (re)moved.

The reading of the other config file, 'taffybar.rc', is not changed by
this commit, though that shouldn't be too hard to adapt.
Merged branch 'args' into 'master'