Fix "redefinition of typedef" error for CASSERT:

CASSERT statements should be compiled only once. I had them in the "ARCHLVL" section so they ebded up being compiled multiple times (once for each architecture). Microsoft's compiler is nice enough to accept such situations without complaint but apparently GCC isn't that nice.

I also moved the load_main function (which is the one using the CHUNKSIZE macro) ahead of the load_hmc function so it's closer to the CHUNKSIZE macro definition.