Route and waypoints

With this the backend should be sufficient for us to send and retrieve route data in the frontend. This branch includes the changes so far from the `testdata` branch. The commit message are fairly self-explanatory.