Cohesive include order

I always include my local .h files before any system .h files, because
that can conceal the error if I accidentally forget to include a system
.h file in one of my .h files. When that error happens, the code in the
.h file breaks when you change the .c file (removing the include) or
include the .h file from another .c file. So just to be safe I always
include files with specific context before including ones with general
context, just to keep from getting bit in the butt in future
refactoring.