Updated recording data to avoid npes and such.

Note that the architecture is still in a _very_ early
stage; the code structure is by no means optimal, just
an attempt to get things working.

That being said, things appear to be recording properly.
In the next commit, I'd like to get reset working properly,
to ensure that the files are actually being written properly.
Currently, the GUI is not being updated with the new location
information; I think a location listener might be required.