added std::string as valid template parameter for endpoints
renamed EndpointDescriptor to EndpointFunctions to prevent namespace clash and added function to get TypedEndpointFunctions from EndpointDescriptors