Fix all implicit function declarations
Numerous function were implicitly declared. In that case the return type defaults to
int, but the actual returned type might be different. As not all C types have the same length (i.e. number of bits), this can cause segfaults.
Closes #1 (closed).
In addition, this MR also makes the
CC Makefile variable overridable by environment variables. This is useful because conda-build automatically sets this environment variable to point to the correct compiler.