Refactor the engine to process samples in the range of [-1.0, 1.0]. Fixes Bug #1204039.

* Move Vinyl Control pre-amp to VinylControlXwax (no longer affects
  microphone/passthrough).

* Switch PortAudio input sample format to paFloat32.

* Remove SHRT_MAX conversions on input and output samples.

* Update VUMeters, clipping, and dithering code to deal with the new ranges.

* Clean up EngineMicrophone/EnginePassthrough/EngineDeck handling of inputs.

* Update tests to deal with the new sample ranges.

This does not change SoundSource. SoundSources still read 16-bit samples and we
simply divide by SHRT_MAX in AnalyserQueue and CachingReaderWorker. A future
performance improvement can remove this and use the native decoder API to
request normalized samples directly.