ENH: Define generic-io primitive types
ENH: Added methods to detect/allocate type

Added methods to detect the variable type as well as a method
that allocates buffer for a specific variable based on the
auto-detected type.
BUGFIX: Do not use MPI_ANY_TAG in Isend

MPI_ANY_TAG is meant to be used as a wildcard when making
MPI receive calls and therefore cannot be used when sending.
ENH: Add method to return variable header
BUGFIX: Disambiguate file vars & requested vars

There are two types of variable arrays: (a) The variables requested
by the user to read and (b) the variables that exist in the file.
This commit makes 'GetNumberOfVariables()' return the number of variables requested
by the user and 'GetNumberOfVariablesInFile()' return the number of variables in
the file.
ENH: Use MPIUtilities printf functions
ENH: Added GetFileVariableInfo() method

Added method to acquire a variable information object for
a variable that exists in the file. GenericIOBase::GetVariableInfo
returns a variable information objet for a user-requested variable.
ENH: Add default constructor for VariableInfo
ENH: Unify bitmask
ENH: Print all read data

GenericIOInspector now reads all variables and prints them
BUGFIX: Deallocate memory
BUGFIX: Remove short/long/long long types

Removed support for short/long/long long types to
remove ambiguity between different types.
BUGFIX: Fix type detection

Type was erroneously detected as 'double' instead of 'float'
ENH: Fix erroneous logic when reading in splitmode

Fixed issue wherein, `nskip`, the number of elements to skip when
reading data in to the global array was not being calculated correctly.
`nskip` must accumulate the sum of elements skipped and not just look at
the previous reader.