Fixes #6742 - Add a unit test suite for the DHCP API

This is built around the ISC DHCPD provider, the goal is testing the API layer.
Fixes #6745 - Clean up the params input to the DHCP::Server.addRecord method

This fixes the ability to match and ignore pre-existing identical DHCP records.
Fixes #6744 - Avoid nested arrays and extra array copies in the ISC DHCP config parser
Fixes #6743 - Common code for manage_subnet? in ISC and Native MS
fixes #6522 - move request code out of chef module

The patch also moves foreman_ssl_ca, foreman_ssl_cert and
foreman_ssl_key config options from Chef plugin config to global config
and adds fallback to the ssl_* options if these are not defined.
fixes #6542 - ship freeipa users script with the smart proxy