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
travis: Fix clang-asan to always display memory errors

Always check the logs in case of test failures(which would happen when ASAN
finds an error since it will abort Nvim).

Also run the 'oldtest' target from the gcc-32.sh script
eval: Fix `save_tv_as_string` to handle non-string types