Input Modules

This commit includes the files created by Nate, as well as minor
clean-up of the hash algorithm (renaming index variables, adding
comments, etc).