Add functions to get kubelet directories.

Gets rid of some magic constants and makes volume plugins (coming later)
cleaner.
Run e2e tests in deterministic random order

Currently, we run the e2e tests in whatever order readdir happens to
return, which is random on some filesystems, name sorted on others,
create order on others, etc. Eventually, we may want to be
automatically hermetic between e2e tests (especially as we introduce
more resource destructive tests), but until then, it would be useful
if we permute the test order randomly between runs to ensure that
developers don't accidentally rely on a particular order. This
introduces a form of forced hermeticism, since improper state cleanup
from one test may not perturb a given test, but there's probably *a*
test in the suite that the order will perturb, so the RNG will find
that order eventually.

Adds logging of the generated seed, and an --orderseed argument that
can be used to re-run in the same order. Also sorts the pass/fail list
now for easier human reading.
Merge pull request #2782 from zmerlynn/e2e.shuffle

Run e2e tests in deterministic random order
Merge pull request #2667 from thockin/klet-dirs

Kubelet directory-name builder funcs
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