Issue #4: set max recording time

Set a max recording time for location and audio recording, recorders
will automatically stop after this. Also set a max recording time for the
application as a whole, stop recorders and show error if it goes over this

Also fairly major refactoring