De-inline some functions. Fixes problems with mixing C and C++.

The control/conf.h file is included from C++ code and from C code. It is
included as extern "C", so all code within is treated as C. The problem
arises when it is included from a C++ file that also includes <cmath>, in
which case isnan() and all other math functions are getting undefined, at
least this is the case for DragonFlyBSD (probably FreeBSD as well).

Move all inline functions into control/conf.c so they are getting compiled
separatly, and all problems that arise from mixing C and C++ code go away.
Also explicitly use std::isnan() in some places (C++ code).