lush: Value: add callback functionality for when value is modified
lush: Pattern_rain: fix out of bounds draws
lush: reorder Direction to be in clockwise order
lush: add ability to change direction of display
lush: fix 2x2 shuffled fader with non-DIR_UP

2x2 shuffled fader used an internal representation of DIR_UP
which then was incorrectly mapped to the pixel representation
which was non-DIR_UP when expanded.  This caused out of bound memory
accesses.

Solve the problem by requiring patterns always use an explicit
x,y location when drawing pixels and translate between an internal
state (likely still in DIR_UP) explicitly.
lush: add fft gain configuration option
lush: get a semi-functioning FFT going
lush: make DISABLE_AUDIO PPV compile again
lush: restrict FFT to 8kHz instead of 22kHz
lush: fix other spectrum patterns
lush: undo starting in off state
lush: stop logging all bins
lush: do setup of variables first