Prepare aware for multiple backends:

- Introduce abstract base classes for io_service, announce_socket, and
  monitor_socket. Each backend then provides an implementation.
- Move include/aware/detail/avahi to include/aware/avahi/detail
- Move src/detail/avahi to src/avahi/detail
- Backends are selected by setting the AWARE_BACKEND cmake-variable