Job array enhancements

Add new data structure for job arrays so only one job record is
required for all tasks in a pending job array
Initialize and free the new structure
Add job info support for new array

Modify the job state RPC, squeue, sview, and scontrol to display
the new job array task ID string.
Increase MaxArraySize limit from 64k to 1M
Add new job array save/restore logic
bit job array task ID string to support steps

Add logic to build job array task ID string with a step function
rather than using the bit_unfmt() function, which is terribly slow
under those conditions for large job arrays.
job array record copy

This adds logic to copy a job record for a job array when we actually
schedule one of them. More work is still needed.
job array struct starting to functions

Now able to run job arrays based upon the new job array data structure.
stream job array scheduling
sched/backfill mods for job arrays
Fix job array sched anomalies

Fix some anomalies in the main scheduling loop for job arrays
Improve logging in the main scheduling loop for job arrays
Fix some job array hashing issues
Move job array task ID string format

Move the formatting of a job array's task ID string from slurmctld
to the client to reduce system overhead. There is logic in place
to translate the full bitmap into a string, but in the worst case
this can take roughly one minute (e.g. 1-1000000:2,2) so by default
only the first 1024 bytes in the string are set. There is logic in
the code to translate the full string, but commented out.
squeue NULL task array string lenght fix
test suite fix

set exit code on a failure mode previously ignored
Make regression tests a bit more thorough
Change bitmap safe format

Change un/pack_bit_str() to pack_bit_str_hex(), which has much
better scalability and performance.
Add function to get MaxArraySize config param
Add squeue -r option support

Fix squeue --array/-r option to print individual job array task
records even if then are all in a single job record from slurmctld.
job array test fixes

Partitial fix for new job array data structure
Clarify --mem-per-cpu option better