More hex_utils code cleanup

Added function to compute adjacent hexes without bounds checking.  Other
functions get much simpler with this in place.
String representation for a Point.
Move HexGrid into its own file.
Added error codes for hex-array index conversions.
Moved terrain functions into their own file.
Made another hex function generic.
Beginnings of a class to handle map generation.
Use CamelCase filenames only for classes.