Cleanup and reset ramp direction after a short delay
This also refactors the fixed level table which is now a list of indexes in the normal ramping table. This saves some memory because we have less computations later. Also ramping_up is now just signed ramp_direction. We also consistently ramp into the direction of the initial brightness (more or less, you'll see).