Support selecting additional end-points while building a Thrift client

Allow building a client that can select the service endpoint based on an endpoint name specified in the ServiceInstance's additional endpoints.

The default behavior is to use the primary end-point (backwards compatible).