Basic trip operations seem to work properly

Massive commit, I know. Still need to add a way to edit trip properties
for drivers and test that it actually works.