This avoids catastrophic rounding errors which can even lead to filter
instability in some cases. This is a real problem in the coming IIR envelope
detector.
... but bringing back some naked calloc and free that weren't replaced quite
right, and I'll figure out why later.
This reverts commit e94fa1d65e5555b78cae164f7b9ca5a6f363d8b8.
This reverts commit 0c7e467a081fb998d183bdc169cd8ddd69648b25.
MSVC2013 Express does not support some initialisation syntax for structs and instead gives error C2905.
This workaround to get us compiling again may need revisiting.