Add job array hash table

Previous logic would typically do list search to find job array elements.
This commit adds two hash tables for job arrays. The first is based upon
the "base" job ID which is common to all tasks. The second hash table
is based upon the sum of the "base" job ID plus the task ID in the array.
This will substantially improve performance for handling dependencies
with job arrays.