Added String type on ServiceEndpoint. Added ServiceEndpointFactory. Add...

...ed ServiceLoader for finding the appropriate ServiceEndpointFactory for each Service EndpointType.
Throughout the system we use Abstract... to indicate classes that are designed for extension. All other classes should be final.