Provide helpers and tests for common error types

Unify error handling in apiserver into a single path - RESTStorage
objects must provide appropriate errors individually.  Ensure ALL
errors which can be traced to logical faults with RESTStorage are
returned as api.Status objects.
Add explicit instruction to vagrant example docs

Building kubecfg is required for kubecfg.sh. kubecfg.sh will warn
of this if it hasn't been built, but it's a better user experience
to make people explicitly aware of all required steps.
Make storage.Delete return *api.Status instead of api.Status
as apiserver.APIServer.finishReq expects.

This solves the warning in finishReq:
"programmer error: use *api.Status as a result, not api.Status."
Prepare for external scheduler

1. Change names of Pod statuses (Waiting, Running, Terminated).
2. Store assigned host in etcd.
3. Change pod key to /registry/pods/<podid>. Container location remains
   the same (/registry/hosts/<machine>/kublet).
New scheduler API

This commit adds a Binding object. The idea is that schedulers can write
these to cause pods to be asssigned to hosts. I'll provide an implementation
along with a rudimentary scheduler plugin.

This continues k8s' tradition of phrasing all APIs as RESTful handlers.
Use IntOrString for HTTP health check ports

Clean up code to be more testable.  Add test cases for named and numeric
ports in HTTP health checks.  Improve tests.
Use IntOrString for TCP health check ports

Clean up code to be more testable.  Add test cases for named and numeric
ports in TCP health checks.  Improve tests.
Move HTTP code out of health.go

Put it with the related HTTP code.
Split health_check.go into smaller parts.

Distinct files for core, http, and tcp.
Reduce and comment exports
Add local scripts, simplify kubecfg.sh
Merge pull request #844 from bwells/vagrant-example-docs

Add explicit instruction to vagrant example docs
Merge pull request #722 from smarterclayton/improve_errors

Normalize apiserver error handling of standard errors
Add debugging info printing to etcd fake

And make tests pass again.
Merge pull request #850 from derekwaynecarr/issue834

Add local scripts, simplify kubecfg.sh
Watch delivers current state for resourceVersion=0

Allows clients to get the current state without having to execute
a get followed by a watch.  Makes integration with action loops
much cleaner.
Apply resource versioning to list extractions from etcd

Set the resource version on lists of objects extracted from etcd to prevent
them from always being interpreted as new during updates.
Merge pull request #855 from ironcladlou/resource-versioning-fix

Apply resource versioning to list extractions from etcd
Use DesiredState rather than CurrentState for Host.
Merge pull request #852 from smarterclayton/deliver_state_on_nil_version

Watch delivers current state for resourceVersion=0