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.
Is this package intended to be appropriate for all golang-based clients of Kubernetes?  Or just ones that are part of Kubernetes and OpenShift projects?  If the latter, it seems pretty prescriptive to require anyone who wants to use this library to use pflags.  This pflags is not even the "official" pflags.  That appears to be "github.com/ogier/pflags".  I'm sure there is some good reason we are using "github.com/spf13/pflags" but I'm not sure that reason is good for all clients.