app: Switch to the FastCGI FCGX_ API

FCGX (as defined in fcgiapp.h) is the low level FastCGI API that the
FCGI (fcgi_stdio.h) API is built on.

One of the advantages of FCGX is that it doesn't wrap the stdio library,
thus this patch actually removes more code than it adds and allows us to
get rid of some hacks and workarounds. e.g

The process_mime() function in src/utils.c becomes much simpler, whereas
before we were using fread() to read in the POST data from stdin, we had
to allow for the fact that we were reading in data in chunks of BUF_SIZE
and that the data we read in would be padded out to a multiple of
BUF_SIZE with nul bytes. Now we can use FCGX_GetStr() which works a bit
more like read() and will read in _upto_ size bytes and returns the
number of bytes it actually read.

To make things a little easier on the eye (and the keyboard) we create
aliases for the various FCGX_ functions we use. These are defined in
src/common.h e.g

    #define fcgx_gs(buf, size)     FCGX_GetStr(buf, size, fcgx_in)

which allows us to use fcgx_gs() instead of FCGX_GetStr() and it only
needs two arguments as the input FCGX_Stream * (fcgx_in) is implied.

Signed-off-by: Andrew Clayton <andrew@opentechlabs.co.uk>
src/common.h: Indent the #undef __func__

Indent it using the normal indentation level.

Signed-off-by: Andrew Clayton <andrew@opentechlabs.co.uk>