Bug 865256 - Part 3a: Add AudioBufferPeakValue utility. r=ehsan

This is an equivalent, C-only implementation of blink's
VectorMath::maxmgv or Apple's vDSP_maxmgv. It finds the
maximum absolute value of the elements in a float buffer.
Used by blink's PeriodicWave implementation for normalization.
Bug 865256 - Part 3b: Add a complex->real ifft to FFTBlock. r=ehsan

Currently FFTBlock only holds the complex frequency domain data
internally, reading and writing to external time domain data
buffers. For PeriodicWave we need to create a real, time domain
signal from real and imaginary frequency domain data. This method
does this without touching the internal output buffer at all.
FFTBlock is just used as a wrapper for kiss_fft_cfg.
Further work porting blink's PeriodicWave to gecko.

Use AudioNodeEngine buffer utility functions instead of VectorMath
and use FFTBlock's new inverse transform.
Punt on memory management for blink's PeriodicWave.

I couldn't figure out how to make our autoptr stuff work with
the WebCore objects, so I just used raw pointers. This probably
leaks (or worse). Revisit later.