Change meaning of cpus=auto when there are more slots than cpus. #3249

Previously, in a slot's resource allocation, cpus=auto always meant
cpus=1. Now, cpus=auto works like other types of allocation. Cpus are
first given to slots with specific allocation requests (exact numbers
or fractional shares), then the remaining cpus are evenly distributed to
the remaining slots (which have cpus=atuo, the default). If the
remaining cpus don't divide evenly, some will go unused. If the
remaining cpus aren't enough to give each auto slot at least one cpu,
the startd will throw an error.