completely rethink waveform rendering (again)

There are 3 possible components to draw at each x-axis position: the waveform "line", the zero line and an outline/clip indicator.
We have to decide which of the 3 to draw at each position, pixel by pixel. This makes the rendering less efficient but it is
the only way I can see to do this correctly.
revert drawing of rectified waves back to previous approach since it (might be) slightly more efficient and is simpler to understand; add comments