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: Simplify/fix 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.

Also, the option window seems to affect other tests, so call `restart` in the
teardown hook.
test: Add more valgrind "possibly lost" suppressions

These valgrind entries are false positives because vim uses interior pointers.
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.
Merge PR #1398 'Tests and msgpack rpc improvements'
eval: Allow setting vim variables of UNKNOWN type
fileio: Extract `should_expand_filename` from `apply_autocmds_group`
fileio: Refactor `has_autocmd` to work with patterns that aren't files

has_autocmd can be used if there are autocommands matching a certain filename.
Some autocmd events use patterns that aren't filenames, allow has_autocmd to be
used with them.
eval: Add v:provider_args/v:provider_result variables
fileio: Add ProviderCall autocommand