Modified data format specification method, added execution and early program termination options, and added global execution timing variables.

- Data format specifications modified to support usage of "switch" flow control statements instead of "if/elseif/else" branching to reduce "main" function clutter and improve execution transparency.
- Boolean variables added to support early program termination procedures after completion of key phases of preprocessing, such as binning, hull-detection, statistical cuts, etc.  This provides a quick and easy way to only run desired portions of the code and aids in testing/debugging.
- Global timing variables allow easy implementation of a helper function for timing execution without creating/passing variables to the function and cluttering the "main" function, thereby encapsulating and hiding unnecessary details of the implementation.
Made numerous modifications, primarily for the purpose of removing clutter from the "main" function, improving the clarity of progression through phases of execution, or simplifying/expanding  the control of execution branching and early program termination.

- Encapsulated program flow control statements that dictate which functions are called for counting histories, reading data, and hull-detection into a single funtion. Hiding these unnecessary implementation details removes clutter in the "main" function and makes the logical progression through the preprocessing steps easier to follow.
- Replaced "if/elseif/else" program flow control statements associated with controlling which function is called for counting histories and reading data (based on the data format version) with "switch" statements.
- Added a function for early program termination which takes a boolean variables as input and added calls to it after completion of key phases of execution, e.g. reading data and binning, hull-detection, statistical cuts, FBP, etc.  Then added "EXIT_ON..." boolean variables to header file to pass to early termination function calls to specify if termination should occur there.  Function can also be added anywhere desired and given "true" as parameter to terminate program there.
- Modified the names of several functions and replaced the extension "_kernel" on GPU functions with "_GPU".
- Added functions for execution timing to removed more clutter from "main" function.
- Removed console window print statements from "main" function when possible (i.e. when functions not executed iteratively which would cause statements to be printed repeatedly).
- Fixed code which produced a warning in Visual Studio but an error on Linux machine: initialized 2 integer variables inside for loop, separated by a comma, in history counting function but both had int specifier, but the second should not be there and was removed.