STY/MAINT: trim dead code, reduce compiler warnings

Removed the Cephes rational arithmetic functions (euclid.c), which were
entirely unused.

Also dead statements, non-prototype (K&R) declarations.

Reduces warning log by exactly 300 lines on my box.
Merge pull request #3537 from larsmans/warnings

STY: reduce number of C compiler warnings
BUG: io/netcdf: Call mmap only once to prevent too many open files
TST: io/netcdf: remove unnecessary use of test generators

Test generators are best used only for iterating over parameter sets,
and otherwise best avoided.
BUG: io/netcdf: clean up code a bit
Merge pull request #3429 from pr-3429

BUG: io/netcdf: use only a single mmap in netcdf

Using a separate mmap for each access of each varible can cause running
out of file descriptors on some platforms.  Address this by using a
single mmap covering the whole file.
BUG: sparse: fix operator overloading with custom types

See issue #3580.