Filters using the ramp method now use a so-called 'quadratic' ramp. See comments in #672.
Filter code cleaned up. Logic made more explicit and magic numbers changed to named values for switch options.
Ramp filters now reverse the ramp back to the start if the filter is switched back while ramping.
Fix bug where crossing filters would not clear the timeout counter when a switch is aborted. The next time the filter is switched, the timeout would be shorter than expected.