Replace FOR_ALL_WINDOWS with FOR_ALL_WINDOWS_IN_TAB(curtab)
Remove W_NEXT use `->w_next`
test: Replace vroom by lua/busted for functional tests

The 'lupa' python package provides a simple way to seamless integrate lua and
python code.

This commit replaces vroom by a python script that exposes the 'neovim' package
to a lua state, and invokes busted to run functional tests. This is a temporary
solution that will enable writing functional tests using lua/bused while a lua
client library is not available.

The reason for dropping vroom is flexibility: Lua/busted has a nice DSL-style
syntax while also providing the customization power of a full programming
language. Another reason is to use a single framework for unit/functional tests.

Two other changes were performed in this commit:

- Instead of "gcc-unittest/gcc-ia32", the travis builds for gcc are now
  identified by "gcc/gcc-32". They will run unit/functional tests for both 64
  and 32 bits.
- Old integration tests(in src/nvim/testdir) are now ran by the 'oldtest' target
travis: Refactor {valgrind,asan}_check functions

Put all logic into the `check_logs` function and use the `find` command to avoid
having to deal with empty directory errors when globbing files.
Merge PR #1258 'Replace vroom by lua/busted for functional tests'
memory: xstrchrnul and xmemscan.
memory: memchrsub and strchrsub
vim-patch:7.4.247

Problem:    When passing input to system() there is no way to keep NUL and
            NL characters separate.
Solution:   Optionally use a list for the system() input. (ZyX)

https://code.google.com/p/vim/source/detail?r=v7-4-247

Implement write_list_to_string() as well since write_list() only works
on files.
vim-patch:7.4.248

Problem:    Cannot distinguish between NL and NUL in output of system().
Solution:   Add systemlist(). (ZyX)

https://code.google.com/p/vim/source/detail?r=v7-4-248
Return list from rettv_list_alloc.
vim-patch:7.4.256

Problem:    Using systemlist() may cause a crash and does not handle NUL
            characters properly.
Solution:   Increase the reference count, allocate memory by length. (Yasuhiro
            Matsumoto)

https://code.google.com/p/vim/source/detail?r=v7-4-256
Old-style test for system(list).
Fix system() output truncation bug.

Replace NULs with SOH to restore the old behaviour of get_cmd_output().
Implement save_tv_as_string to assist in #1176.
Merge pull request #1141 from splinterofchaos/system-nl

vim-patch:7.4.247 + vim-patch:7.4.248 + vim-patch:7.4.256 + f_system() bug fix
Use line-specific method names where possible to remove ambiguity and possibility of future clashes
Merge PR #1257 'Use line-specific method names where possible'
test: Move 'test/legacy' to 'test/functional'

Busted can only discover tests from a single directory. In order to allow tests
under 'legacy' to run as a functional test, it needed to be moved to
'test/functional'.
test: Add 'eval' functional helper

The eval helper transforms vimL expressions into lua tables, it's useful for
verifying function output.
test: Add some specs for the viml function `system()`

These new specs replace src/nvim/testdir/test_system