Split job "shared" field

Split a slurmctld's job record "shared" field into "share_res"
(share resource) and "whole_node" fields. Needed to better manage
allocation of whole nodes for core specialization without disabling
gang scheduling of such jobs.
Allocate whole node in with --exclusive

With select/cons_res plugin and a job using the --exclusive option
if the partition supports gang scheduling or mutliple jobs per node,
then allocate CPUs to multiple jobs, but allocate the job every
CPU on each node.