Add features and smartos support

This pull request adds the following things:

- SmartOS support
- installation of `socat` for the socket api
- restarting `haproxy` after rewriting the config (note that a change to the `#{{ ansible_managed }}` comment does not trigger a restart)
- fix a few typos
- add support for `listen` sections (in addition to separate `frontend` and `backend` sections)
- adjust handling of boolean defaults so they can be turned off by setting value to `false` (without breaking default vars already set in the role)
- added the following features to individual sections
  * default
    - balance
    - compression
    - http-check
  * global
    - gid
    - uid
    - nbproc
    - stats timeout

*NOTE:* there was some whitespace change, so this may be more readable with `?w=1`