Merge pull request #1414 from brendandburns/fix

Clean up scripts to require a minimal gsutil version.
Refactor the code to make it more readable.
Merge pull request #1420 from brendandburns/scheduler

Initial cut of a spreading and generic scheduler.
Add new Event type

* replaces previous Event type, which is too limited.
* Remove writing of old event type.
* Fix serialiazation test to automatically test all types.
Simplify schedulers.
Fix type cast problems now that watch can pass errors
Be more robust in how we pass flags.

Using the '=' form of a flag makes things better if we have an empty list of machines.
Merge pull request #1447 from lavalamp/fix

Fix type cast problems now that watch can pass errors
restore test that somehow vanished + add SetList
Make ExtractToList, deprecate ExtractList.
Add ttl parameter to CreateObj
Merge pull request #1448 from jbeda/robustify-flags

Be more robust in how we pass flags.
Merge pull request #1354 from lavalamp/eventing

Add Event to api types
Log apiserver errors that are not of an expected type

Currently HttpLog only expected status range - this logs errors
that come back from a REST storage object without being first
converted to something in pkg/api/errors.  This usually indicates
unexpected error conditions that a programmer didn't explicitly
check for - the kinds of problems that may need debugging by
an operator later.  Set to V(1) because they don't impair normal
operation.
Introduce some default log verbosity control

Move a lot of common error logging into better buckets:

glog.Errorf() - Always an error
glog.Warningf() - Something unexpected, but probably not an error
glog.V(0) - Generally useful for this to ALWAYS be visible
            to an operator
            * Programmer errors
            * Logging extra info about a panic
            * CLI argument handling
glog.V(1) - A reasonable default log level if you don't want
            verbosity
            * Information about config (listening on X, watching Y)
            * Errors that repeat frequently that relate to conditions
              that can be corrected (pod detected as unhealthy)
glog.V(2) - Useful steady state information about the service
            * Logging HTTP requests and their exit code
            * System state changing (killing pod)
            * Controller state change events (starting pods)
            * Scheduler log messages
glog.V(3) - Extended information about changes
            * More info about system state changes
glog.V(4) - Debug level verbosity (for now)
            * Logging in particularly thorny parts of code where
              you may want to come back later and check it
Merge pull request #1359 from smarterclayton/tone_down_logging

Split log statements into more buckets for better control
Handle invalid pod name
Merge pull request #1439 from jhadvig/err_handler

Handle invalid pod name
examples/guestbook-go: build from source and remove bin/docker dep
Update README.md

GoogleCloudPlatform/kubernetes#1454