build: turn down the _FORTIFY_SOURCE level on gcc >= 4.0
Merge pull request #1390 from jszakmeister/turn-down-fortify-source

build: turn down the _FORTIFY_SOURCE level on gcc >= 4.0
CMake: Pass build type CFLAGS to header generator.
CMake: Modify _FORTIFY_SOURCE only for release builds.

Remove build warning for Debug builds:

    # warning _FORTIFY_SOURCE requires compiling with optimization (-O)
CMake: Rename target "test" to "functionaltest".

Remove build warning:

    The target name "test" is reserved or not valid for certain CMake
    features, such as generator expressions, and may result in undefined
    behavior.
Merge pull request #1392 from fwalch/fix-build-warnings

Fix build warnings.
build: fix running of functional tests directly with CMake

If you aren't just building everything into build/, then the functional
tests fail because they can't find the nvim executable.  Let's pass in
the location of the nvim executable, and set NVIM_PRG environment
variable accordingly.
Merge pull request #1395 from jszakmeister/fix-run-functional-tests

build: fix running of functional tests directly with CMake
CMake: Fix running individual (functional/unit) test.
Merge pull request #1397 from fwalch/fix-test_file

Restore TEST_FILE functionality for running individual tests.
test: Set VIMRUNTIME before running tests

This is required for testing scripts under the 'runtime' directory
test: Improve/simplify options_spec.lua

The options_spec.lua suite has one purpose: Check if the :options commands will
throw any exception(:options is implemented by $VIMRUNTIME/optwin.vim). For this
it is best to use the `vim_command` API function since it will automatically
catch exceptions and forward them via msgpack-rpc.
test: Add more valgrind "possibly lost" suppressions

These valgrind entries are false positives due to how interior pointers are used
in hashtab.c
channel: Delay notifications to avoid client race conditions

It is currently possible for a client to send a response that doesn't match the
current server->client request(at the top of the stack). This commit fixes that
by delaying notifications to until the first `channel_send_call` invocation
returns.

Also remove the "call stack" size check, vim will already break if the call
stack goes too deep.