Revert "Split fx_vasprintf() to fx_vasprintf() and fx_strdup(): not all implementations allow integer NULL in args."

This reverts commit 673458f6e0c1e85308102bc17bfe3635937a96c8.
Fix production mode support in CMakeLists.txt.

It is wrong to check ${CMAKE_PROJECT_NAME} for emptiness because on
CMake re-runs it always contains a non-empty value. Compensate for it by
checking the variable only on first run and caching the result.
Add a va_list wrapper for fx_vasprintf() to be able to accept explicitly null args.

On some architectures (notably, Android/ARM) va_list is not a pointer.