Ride update

I have implemented the whole of ride update. The routine did less than I thought, I guess most of the ride logic is in vehicle update. Ride update has a bit of station logic, music logic and breakdown logic. I don't know if I have fixed all the bugs or not, so keep your eye open.

A few notes:

@duncanspumpkin I think you have already written these in your peep_update branch. I will therefore let you replace these when you are ready.
```c
RCT2_CALLPROC_X(0x0069A409, 0, 0, 0, 0, (int)mechanic, 0, 0);
RCT2_CALLPROC_X(0x0069A42F, 0, 0, 0, 0, (int)mechanic, 0, 0);
```

@zsilencer You should now be able to sort out sub_6BC3AC. I have made it call the original function until the C version works. The function should return two values, the new music position in samples and the tune id. These are input parameters too, but presumably it can override tune id and will probably always override position with new position. This is stored on the ride so that the same point in the music is saved in the game when you load it back again.
Is this what ride->var_062 bit 7 is likely representing?