Expose peak information to effect

The shader semantics "CHANNELMAGNITUDE" and "TRACKMAGNITUDE" are
float4:s representing the amplitude of the current channel and the whole
track.

R is the minimum amplitude, G is the maximum amplitude, B is the highest
RMS value, A is 1.0 if the data is present.

This can be used to rescale the vertical texcoord to display a scaled
and displaced range, ensuring that the edges of the display are
peak-to-peak.

In most effects, add something akin to the following at the top next to
all the other semantics:
float4 chan_mag : CHANNELMAGNITUDE;
float4 track_mag : TRACKMAGNITUDE;

Add something akin to the following in the main PS function:
input.tc.y = (input.tc.y + 1)/2 * (chan_mag.g - chan_mag.r) + chan_mag.r;

This will map the range [-1,1] to [min_peak,max_peak].

Other effects are possible, like a symmetric scale by the largest
absolute value:
input.tc.y = input.tc.y * max(abs(chan_mag.r), abs(chan_mag.g));

This will map the range [-1,1] to [-largest_peak,largest_peak].
Report incremental scan progress

The scanning functionality will now prepare intermediary waveforms and
periodically report those back to the seekbar, including information on
how many buckets of the waveform are valid. It will fill invalid buckets
with zeroes to avoid disturbing displays.

This behavior is off-by-default and can be enabled through an advanced
setting labelled "Incremental update of waveforms being scanned".

Note that this might have a negative impact on scanning performance when
enabled, as it does a fair bit of work in preparing these partial
results. Caveat enabler.
Merge branch 'feature/incremental-results' into develop
Version bump to 0.2.34
Merge branch 'release/0.2.34' into develop