uwsgiconfig: cleanup plugin cflags blacklist
uwsgiconfig: move comment where it is supposed to be
uwsgiconfig: cleanup external plugin cflags / ldflags blacklist
uwsgiconfig: cleanup plugin configuration a bit

Unify embedded and external plugins configuration so that we don't
duplicate code and bugs. While at it fix remote plugin compilation
when the repo uri ends with .git (c&p from github).

Tested compilation with plain make, external git plugin (uwsgi-realtime)
and internal plugin with --plugin switch.
Fix invalid 'args' and 'kwargs' decoding in python3

When we set pass_arguments=True, we should unpickle
'args' and 'kwargs' first.

Without it '_decode_from_spooler' will fail on 'decoding' their
packed by pickle data, because pickled data has 'bytes' type.
Merge pull request #763 from xrmx/configcleanup

Cleanup plugin build machinery
Fixed: uwsgi_lock_fast_init fails on Linux 3.14 on BeagleBone Black
Merge pull request #764 from jonathanherbst/master

uwsgi_lock_fast_init fails on Linux 3.14 on BeagleBone Black
Remove unnecessary mortalization

newRV(sv_newmortal()) is equivalent to newRV_noinc(newSV(0)): the former
creates a new SV with refcount 1, schedules a decrement "soon" (the
mortalization) and increments the refcount, the net result is a refcount of 1,
which is what the latter does.
Fix latent refcounting bug

It can be reproduced by enabling the Perl debugger inside a PSGI application:

    {
        package DB;

        sub DB { }
        sub sub { &$sub }
    }

    $^P = 0x73f;

    sub { [200, ['Content-Type' => 'text/plain'], ['Hello World']] }

For every request the following warnings are emitted:

    Attempt to free unreferenced scalar: SV 0xfea6e8, Perl interpreter: 0xd534a0.
    Attempt to free unreferenced scalar: SV 0xfea718, Perl interpreter: 0xd534a0.

where the unreferenced scalars are the uwsgi::input/uwsgi::error instances
created in build_psgi_env.

The calling convention for Perl subroutines is that the values pushed on the
stack must be mortalized in the callee, and if the caller wants to retain them,
it must do a SvREFCNT_inc to undo the effect of the mortalization.

Before this patch XS_input/XS_error were not mortalizing the value, and
uwsgi_perl_obj_new was not incrementing the reference count, so the two bugs
balanced each other.

When running under debugger, Perl forwards all function/method calls to
DB::sub, which causes a mortal copy of the return value of
uwsgi::input/error::new to be pushed on the stack. The value is cleared by the
FREETMPS at the end of uwsgi_perl_obj_new, and the freed value is added to the
environment hash. The warning is emitted at the end of the request when the
environment hash is freed and Perl notices that some of the values has been
already freed.
Merge pull request #765 from mbarbon/master

Fix latent refcounting error in the PSGI plugin
fixed #760
use uwsgi_buffer for send_ack in #760
fix php ZTS
Merge pull request #761 from ykhalyavin/fix_pass_arguments

Fix invalid 'args' and 'kwargs' decoding in python3
Don't lower security standards with gcc 4.9

For some reason since e4d65c07cee90461caad8b24f069fc93a82c3877
we started compiling -Wno-format, possibly because of plugins
dependencies not compiling.
Fedora (and Debian to some degrees) are starting to default to
-Wformat -Werror=format-security which is something sensible for
uwsgi. So let the distro handle the situation when a very recent
gcc version is encountered since they probably know better.