MAINT: optimize: clean up Zeros code

* Use standard C header file `<math.h>`
* Decouple implementation from interface in `zeros.h` (expanded out the `ERROR` macro for readability)
* Don't use `static` variables, they make code non-reentrant  and hinder compiler optimizations
* Indentation, `{}`, split multi-statement lines
In case anyone's wondering, I checked the assembler output for this (from GCC 4.8) and the arguments are evaluated only once. When `<math.h>` is included, the compiler is free to assume that `fabs` behaves as in the standard and inlines it. Also, the `MIN` macro becomes a single `minsd` instruction.