define _GNU_SOURCE at cmake-level so as to suppress warnings caused by include order changes
Revert "do not include alloca.h if it does not exist (it is included by default so that we could skip cmake on osx)"

This reverts commit fed987a544ce691f321e1a63c46212e24d09ad60.
no need to #include alloca.h all since on linux alloca is also defined in stdlib.h
no need to include alloca.h as pointed out by @mgumz (merge branch 'kazuho/issues/never-include-alloca.h')
do not modify the passed-in buffer
move close callback from protocol-level to socket-level (so that it would be easier to implement connection pooling in reverse proxy)