timedPrint + HSKP + semantic stuffs

added timedPrint and fixed all the strings to use it
added addtional comments and method headers
cleaned up the code, added constants, etc.
minor rev.

forgot a method header
moved resetOutcome and resetPath to the top for code readability
invalid choices are now noted to the user