b=815643 Import the HRTF panner implementation from Blink r=ehsan

This code was copied from Blink SVN revision 153183.

--HG--
extra : rebase_source : 968f69846f5c532eda3580c8ce2176e2e6b5fc63
b=815643 remove unused HRTF code r=ehsan

--HG--
extra : rebase_source : f6063443b6e7574055b0ad92e95e32d7f0a850cd
b=865241 don't try to compute a phase for group delay from the DC and nyquist components of the DFT r=ehsan

Given imagP[0] is really realP[halfSize], it doesn't make sense to calculate a
phase from placing the DC and Nyquist components in different directions.
The DC component doesn't have a phase offset and lastPhase is already
initialized to zero.

This makes extractAverageGroupDelay() consistent with addConstantGroupDelay()
and to some extent interpolateFrequencyComponents().

The effect of the bug would have been small for reasonably sized FFTs.

--HG--
extra : rebase_source : b2931d625bd7e014f123b576f28aad7f719c585d
b=815643 Add Blink's frequency interpolation and group delay methods from FFTFrame to FFTBlock r=ehsan

--HG--
extra : rebase_source : 1e3393c85f1828cbcce49af1e3160fc3535d39b8
b=865241 always leave 20 samples of headroom when extracting group delay, removing the discontinuity at delay = 20 r=ehsan

--HG--
extra : rebase_source : 30515ea2236b7503ff7e446d50930f91135bc7e0
b=815643 Add Blink's HRTFKernel to the build r=ehsan

A functional difference is that HRTFKernel is not reference-counted.

--HG--
extra : rebase_source : 66a9653fed75265ec55d915b731876bcb793d513
b=815643 Use symmetry to halve the number of HRTF kernels calculated and cached r=ehsan

--HG--
extra : rebase_source : 12e4a114630e793c22d3e335c38c641a6bc20ee2
b=815643 Add HRTF impulse response data r=ehsan

The impulse response sample data is directly from individual impulse response wave files
in Blink SVN revision 153183.

--HG--
extra : rebase_source : 037471efd5be1f0d4a798bcc01192db9398377c2
b=815643 Add code to interpret and resample impulse response data r=ehsan

--HG--
extra : rebase_source : 35497353634022f297b2ebf333b7230b12c1f9c2
b=815643 Reduce convolver fft size for low sample rates r=ehsan

--HG--
extra : rebase_source : 0d7c6d4a3bcb340fc674f0b4181cf264fcc4e041
b=815643 Add Blink's HRTFElevation to the build r=ehsan

--HG--
extra : rebase_source : 5dda0b6c6302197574ac5fafbb0f06b1ac65980a
b=815643 Add Blink's HRTFDatabase and HRTFDatabaseLoader to the build r=ehsan

--HG--
extra : rebase_source : e7aa0ce1ca436bbb429cb1f6051b3b8210bf767a
b=865241 make HRTFDatabaseLoader ref-counting thread-safe r=ehsan

--HG--
extra : rebase_source : 8cab96807c111eb103dbe931d14a86a8b97a824e
b=865241 don't join HRTFDatabaseLoader thread until it has finished r=ehsan

Also turn some always-true conditions into assertions.

--HG--
extra : rebase_source : a38b75a1a27f25cef7b9dd86a1cca15ce9f67893
b=815643 Refactor DelayNodeEngine delay processing into a shareable class r=ehsan

--HG--
extra : rebase_source : e25ff3e490c2cbce5ed7cdf9419ccc2850ea16e5
b=815643 Add Blink's HRTFPanner to the build r=ehsan

--HG--
extra : rebase_source : 14187eb58d308c25b3ff37356a1aef6757aee81d
b=815643 Implement HRTF panner processing based on Blink implementation r=ehsan

--HG--
extra : rebase_source : 197fd6f39d3d45b61d25d9dc399c72828d93655a