Add basic config file support.

The config is in INI syntax, example:

[ds4drv]
daemon = true

[controller:1]
emulate-xpad = true
led = 00ff00
Turn the joystick layouts into more generic uinput mappings.
Move all the controller related things into its own class.
Add support for controller profiles.

Profiles can only be added via the config file, example:

[controller:1]
led = 000010
profile-toggle = PS
profiles = xpad,mouse

[profile:xpad]
led = 100000
emulate-xpad = true

[profile:mouse]
led = 001000
trackpad-mouse = true
Add support for basic custom button mappings.

Mappings are specified in the config file, example:

[controller:1]
mapping = keyboard

[mapping:keyboard]
KEY_UP = dpad_up
KEY_LEFT = dpad_left
KEY_DOWN = dpad_down
KEY_RIGHT = dpad_right
KEY_Z = button_cross
KEY_X = button_circle
Add example config file.