Add support for a Squid proxy to provide access to Foreman

When you are provisioning hosts that cannot reach the
Foreman server due to the network's design, you may
want to have a Squid proxy running on the subnet to
provide access.

When a host is signalled to build, Foreman issues a command
to the Smart Proxy to add the host's IP to the Squid ACL.
When the build is cancelled or completed, the entry is
removed.

Each subnet may identify at most one Smart Proxy which
manages the Squid proxy for that subnet. If the Smart
Proxy feature set changes, and it no longer does the Squid
feature, then it is removed from any subnets where it was
identified as the Squid proxy.

Caveats:
  - Setting the proxy for the provisioning process may be
    incomplete
  - There is no test suite yet

Resolves http://theforeman.org/issues/969