add utility for binding flags and building api server clients

This utility provides one stop shopping for a command line executable to get bind the correct flags, build the client config, and create a working client.  The code for usage reduces to something like this:

	authLoader := &PromptingAuthLoader{os.Stdin}
	clientBuilder := clientcmd.NewClientBuilder(authLoader)
	clientBuilder.BindFlags(cmds.PersistentFlags())
	apiClient, err := clientBuilder.BuildClient()

I made the flags congruent with kubectl and used kubectl as an example spot for usage.  This makes use of the auth config work in #2340 and the Bind and Build approach could be used to unify client creation and flag names.

@smarterclayton You've had an interest in this area.
It's used by Openshift.  This implementation does not need it.


> On Nov 18, 2014, at 11:15 AM, David Eads <notifications@github.com> wrote:
> 
> In pkg/kubectl/cmd/cmd.go:
> 
> > @@ -46,11 +49,11 @@ func NewFactory() *Factory {
> >  	return &Factory{
> >  		Mapper: latest.RESTMapper,
> >  		Typer:  api.Scheme,
> > -		Client: func(cmd *cobra.Command, mapping *meta.RESTMapping) (kubectl.RESTClient, error) {
> @smarterclayton Do you know what this "mapping *meta.RESTMapping" is supposed for? Looks like it was a dead parameter even before I started. Was it just cruft of did someone forget to wire it up?
> 
> —
> Reply to this email directly or view it on GitHub.
>