handle config dir

Instead of passing a simple config file to the gafferd command, pass a config
directory.

Now you can set a config directory using -c or --config command or just set
the `GAFFER_CONFIG` environment variable.

the config dir default to ~/.gaffer if gaffer is launch as a normal user and
/<root>/etc/gaffer (<root> fallback to / if not found relative to the
(../executable). Windows equivalent are supported.

While i'm here make sure we can find the plugin dir relative to the config dir
if unspecified at the command line.