Add support for creating a bulk of resources via kubectl apply
Merge pull request #1958 from mfojtik/config

Add support for applying set of resources via kubectl
Fixed wrong godoc for pkg/config methods
Merge pull request #2153 from mfojtik/fix_godoc

Fixed wrong godoc for pkg/config methods
Introduce ObjectConvertor for conversion to known API versions

Will allow clients to transform internal objects to a version
suitable for external output.
Return the Kind of the object with the RESTMapper
Add runtime.ObjectConvertor to RESTMapper
Allow Create/Update/Delete kubectl commands to handle arbitrary objects

* Ensure kubectl uses abstractions from other parts of Kube
* Begin adding abstractions that allow arbitrary objects
* Refactor "update" to more closely match allowed behavior
Refactor Get and Describe to allow extension of types

Get should use ResourceMapper, allow Printer to be abstracted,
and extract Describe as *Describer types.
kubectl should error when namespace doesn't match file for update

A user who runs `kubectl update -f foo.json` where foo.json is a
resource in a namespace that does not match $(kubectl namespace)
may not intend to update the resource in that other namespace.

For now, return an error when the user does not explicitly set
the namespace via the CLI:

    # foo.json in 'one', current is 'two'
    $ kubectl update -f foo.json # FAILS

    $ kubectl update --namespace=one -f foo.json # SUCCEEDS
Add --template and --templatefile options for more flexibility

Allow directly entered templates for scripting flexibility.
Changes --output=template to mean "string" and --output=templatefile
to mean "from file"
local-up-cluster: terminate all processes on SIGINT
Display an external version of the object for --output

Use the version of the API the RESTMapper prefers (currently)
Lock the output format version based on user input
Like update, allow CLI create to clear resourceVersion
Add more extensive test-cmd scenarios for output
Merge pull request #2000 from smarterclayton/client_takes_multiple_types

Allow kubectl to handle arbitrary objects
add --use_go_build option when building binaries

Because of Fedora's crazy packaging guidelines, go install basically
isn't allowed.  So allow us to use go build instead of go install.
test-integration also needs to accept the flag to be able to pass it
along to the build function.