Better include guard names

Leading underscores are a no-no, and this makes different internal.hs
double-include-proof.
Alphabetize file lists
Alphabetize includes
Rename test directory to make sense