Allowing arbitrary data to be provided to a ServiceBuilder and better documenting how a ServiceBuilder works. Closes #338.