job and state: Add resource based scheduling.

This allows one to limit a hosts availability for hosting units
based on memory usage and "CPUUnits".  Since CPU shares only adjust
priority, there must be a way to specify capacity.  This patch counts a
CPU as 1 CPUUnit.  Unit files can then specify how much capacity they
should be considered to use with CPUUnits=n under the fleet section of
the unit file.  Currently, a unit file will default to .1 CPUUnits if
nothing is specified.

Memory constraints can be specified with Memory=n where n is the kB
required to be available.  This currently only works with kernels newer
than 3.14.