C: unify empty PVs to ptr_undef

do not manually handle NULL vs &PL_sv_undef as this is already defined by ptr_undef.
ptr_undef can always be initialized statically, so we can remove the init handling.
This fixes #269 with threaded perls, the PV being initialized to &PL_sv_undef, which
cannot be realloced.
t/test.pl: fix /usr/lib/libperl.so linkage

debian (at least) prefers /usr/lib/libperl.so over any given -L path, so we get
run-time errors. Link explicitly to our libperl.
Also unify 2x -fstack-protector handling as it might not be cygwin only.
tests: small fixes on i148, i105