This shows in which order input handling, physics computations and
other kart related items are updated in each frame.

main_loop:
    getDT()                              : Determine nexts DT --> simulation
                                           is [T, T+DT] with T=now.
    RewindManager::addNextTimeStep()     : Adds a default TimeStepInfo entry to the
                                           RewindQueue which will store events for the
					   current time step (e.g. key presses, and
					   network data).
    irr_driver::update()                 : Rendering and input handling.
        Controller::action()             : Store user action in m_controls of
	                                   kart. Clients send event to server.
    RaceEventManager::update()           : A thin wrapper around world used in networked
                                           races.
        RewindManager::playEventsTill()  : Plays all events in [T, T+DT]: copies unhandled
	                                   network events that must be handled at the
 					   current time to the current TimeStepInfo. Can do
					   complete rewind and replay till T is reached again!
    World::updateWorld()
        RewindManager::update()          : Store current state on server if necessary and
	                                   broadcast it to clients.
	Karts::update()
	     Moveable::update()          : Copy physics data from bullet to STK.
	     updateSpeed()               : Get physics speed and set it in kart.
	     Controller::update()        : Set kart steering based on user/AI input.
	     Slipstream::update()        : call Kart::handleZipper if required.
	     updatePhysics()
	         HandleStartBoost        : Trigger boost if required.
		 updateEnginePower...()  : Sets engine power/brakes for bullet vehicle.
		 Skidding::update()      : Update skidding values (which will
		                           affect steering).
		 setSteering             : Sets the bullet steering based on
		                           kart's current steering.
		 updateSliding()         : Test for sliding which can reduce the wheels
		                           friction/grip, causing the physics to slide.
		 MaxSpeed::update()      : Cap speed of kart if kart is too fast.
            !physicsafter                : !Print debug values
	Physics::update()                : Time step bullet as often as necessary. This is
					   using the steering etc information set above.
    ProtocolManager::update()            : Synchronous protocol updates.
    World::updateTime()                  : Increase time from T to T+DT.