Try to improve the eye detection

This tries to improve the eye detection by making a few critical
changes.  With the previous changes, if the face was not detected
the code would decide that the eye was closed and potentially fire
a click.  With these changes, losing the face will not fire clicks.

This may need to be changed a bit, as we are always defaulting to
the eye being open.  I consider this to be a safer bet, as this
does not cause extra unintended side effects.

This also tries to detect the left eye before determining if it is
closed.  The `haarcascade_mcs_lefteye.xml` cascade is designed to
detect left eyes, even if they are not open, unlike the other
cascade which will only detect open eyes.  Similar to the face
detection, if the left eye cannot be detected it will default to
the eye being open.

Among other things, this is trying to limit the impact of the faulty
eye detection which we need to look into fixing as per #22.

https://github.com/GNOME-MouseTrap/mousetrap/issues/22
Remove unused constants.
Add basic configuration system.

* All constructors now take a `mousetrap.config.Config` as
  first parameter (after self).

* `mousetrap.config` contians editable configuration (for now).

* log.py went away since its configuration is now in config.py.
Remove FIXME comment since we don't plan to fix it :)
Make constants look like constants.
Fix bug introduced by last commit.
Fix bug in config.py
Add configuration to HaarLoader.
Move haar_files list to configuration.
Extracting camera configuration.
Extract mousetrap.plugins.display configuration.
Update Plugin interface reflect that constructor must take a Config.
Simplify access to class-based configuration.
Extract mousetrap.plugins.eyes configuration.
Extract nose_joystick configuration.
Extract nose.py configuration.
Add recurseive merge for configurations.
Move config dump to main after logger has been configured.
Load default configuration from a YAML file.
Add configuration search path.