[WIP] Draft scheduler changes for extensibility

The predicate and priority functions are now configurable. Currently the default ones are being used but different functions can be selected by providing arguments to the factory. The function selections can be factored out as command line options or based on configuration in etcd (there is a separate issue tracking that --> https://github.com/GoogleCloudPlatform/kubernetes/issues/1627). 

Also, I have taken an initial stab at combining priority functions by simply adding the minion scores. I have laid down some thoughts on a simple approach for this here --> https://github.com/GoogleCloudPlatform/kubernetes/issues/2313#issuecomment-63847689 . The implementation of the weight argument to the priority function is still pending.

Also, I have not written any additional test cases pending basic feedback on the PR.