Merged with master

Rolled all functionality into one branch. See master commit for
details. This is my first git project, so I'm not really familiar with
the merging system, so I'm just making both projects identical before I
merge.