NewDeletionFallbackClient creates a client that will either issue an EndpointDelete
request via the api, *or* queue one in a temporary directory.
To prevent race conditions, the logic is:
1. Try and connect to the socket. if that succeeds, done
2. Otherwise, take a shared lock on the delete queue directory
3. Once we get the lock, check to see if the socket now exists
4. If it exists, drop the lock and use the api
EndpointDelete deletes an endpoint given by an endpoint id, either
by directly accessing the API or dropping in a queued-deletion file.
endpoint-id is a qualified endpoint reference, e.g. "container-id:XXXXXXX"