Installed Dax 32/64 types can be overridden by project including dax.

Before this Dax at configure time would determine if it was in 32 or 64 bit mode
and configure everything at that point. This meant that if Dax was installed
on a machine, consuming application couldn't override the size of Scalar or Id.
For Dax to be a proper header only library, these things should be set by
the consuming application.

To make it easier for consuming application to set if Dax should use 32 or 64bit
data types, we now provide ConfigureFor32 and ConfigureFor64 header files.
Error out if Configure has already been included.

These headers should be the first dax include when setting up the types that
dax will use.
Remove uneeded defines from the configure headers.

We still need a way to remove the SIZE_LONG part since that is used to determine
the proper 64bit type.
Remove setting any of the sizes, as it isn't needed.
Make include order error messages even more clear on how to fix.
Rename align defines and remove unused align defines.
Make the saving of references in the permuation container a bit safer.

I'm still uncomfortable with references as ivars in an object, but this
seems to be working for now.
Make internal kernel class private.
Merge branch 'Safety'
Merge branch 'better_install_support'