Services API: Add GetFrontends endpoint which returns a list of frontends connected to the backend.

The endpoint takes a boolean 'OnLine' arg which limits the list to
only frontends which are currently connected, excluding those which
have connected but are presently offline.

The frontend information return is limited to it's hostname (Name) and
it's IP address. This should improve in time.

The frontend IP (and port 6547) enables a services client to connect
to the frontend http service where they can then fetch further
frontend information or control aspects of the frontend.

This adds a BackendContext global object to the backend which
maintains a list of all frontends which connect to the backend and
those which are presently connected. This is an incomplete
implementation as we don't yet store the frontend information in the
database so that it will persist through backend restarts.

Ultimately the BackendContext may evole to track other information.