Add some validation for externalized service ports.
Require a KubeletClient in master.New().

Without this, tests which create a master
will panic with a nil pointer when the periodic
podCache update runs.

Deleted unused FakePodInfoGetter.
Added FakeKubeletClient.
Passed to master.New.
Required a KubeletClient in master.New.
Merge pull request #2142 from erictune/fix_crash

Require a KubeletClient in master.New()
Get user from request and put in authz attribs.

Added integration tests for user-based auth.
Merge pull request #2117 from erictune/get_user_attrib

Use user-string in authentication attributes.
Authorization based on namespace, kind, readonly.

Also, pass Authorizer into master.Config.
Refactor Status.String() in health pkg
Fix health_test.go
Refactor formatURL in health/http.go
fix pod scheduling retry logic
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