Overlapped FFT support for greater time resolution.

Due to gnuradio.blocks.stream_to_vector_decimator, used by logpwrfft,
not natively supporting overlapped output, we use a pre-processing stage
which duplicates samples going in to it.

This is an inefficient solution, especially as it means the overlap
cannot be changed without modifying the flowgraph (thus we set it to
a worst-case value, copying data that is then discarded when at low FFT
rates). It would be better to have a stream_to_vector_decimator block
which internally supported overlapping; the only reason I have not done
so is to avoid including C++ code (and thus having a mandatory build
step).
Spectrum info values are in the cell value rather than extra methods.
Feed center freq value through SpectrumView.

No functional change but reduces the number of dependencies and is
progress towards fixing reconnection behavior and eventually eliminating
widgets' global config.radio.
Define a nice interface to createWidget and use it in all programmatic widget creation.

This eliminates usage of the string-named widget table except when
widgetifying the root HTML structure.
Define interface for demodulator taking care of channel frequency.
Implement ITunableDemodulator.
CW demodulator by tweaking SSB.

I currently don't have any CW signals to test it on, so I'm not sure it's
set up well; in particular we may need to remove/adjust the AGC. (But
then the AGC for the existing SSB is also questionable.)