Use apiserver instead of etcd for kube-proxy.

For cloud-providers that use salt, have kube-proxy use
apiserver instead of etcd as a config source.
Move watch filter into storage level
Implement apiserver communication for Vagrant

This implementation is based on the GCE impementation from
618a367dbb48dbaa9c3b50e877858d854322fd0b.
- make cadvisor port configurable on the kubelet.
- added cadvisor port documentation.
Added two test cases for KubeletClient
Add python-cherrypy as explicit install for salt-api
Update roadmap based on discussion at contributor meetup.
Scheduler changes for extensibility
Scheduler changes to allow multiple priority functions
Fixing gofmt errors
Combining scheduler priority functions using weighted averages
Implementing PR feedback
 - Making ConfigFactory struct public
 - Added comments for predicate/priority functions and new methods
Implementing PR feedback and adding test cases
Expand e2e instructions.
Fix conditional on grains.docker_opts in docker-defaults
Add stack of previous values to converter
produce more readable error messages
refactor to hide structs behind an interface
Use EXIT pseudo-signal
address comments.