PROC-121: Adding map payload type

PROC-121 - added map type for payloads, with validation of variable names/length/type at proctor load time, and validator evaluation with variable names with unit tests

PROC-121 - added finals, refactored for clarity and removing unnecessary temporary map in payload validation

PROC-121 - adding payload class per specification and inner class per test to retrieve from the map of payload values

PROC-121 - making abstract payload class to have less redundant code in generated payload class

PROC-121 - refactoring to use extra field in payload specification and fixed testing for type incompatibility within arrays

PROC-121 - removing nonsense printing from last commit (woops) and fixing payloadTypeForName function with all types as strings

PROC-121 - fixed the issue of comparison through a possibly unordered list, and added allowing addition of extra payload values through specification

PROC-121 - changed to not use map to store payload map values, rely more on AbstractGroupsPayload for parsing testbucket in constructor and removing potentially error causing abstract methods

PROC-121 - changed to allow extra parameters in test matrix and not in specification, refactored AbstractGroupsPayload and generated Payload Class