Statically allocate NameBuff
Change buffer.h #defines to enums so they can be used in tests
Add tests for buffer.c and fileio.c
Merge pull request #904 from war1025/dev/buffer_tests

Add unit tests for buffer.c and fileio.c
fix! Disable TAP output

Reason: using TAP output disables error messages.

Also ref #983.
core: Add X[MC]ALLOC_NEW convenience macros
core: Move MENUDEPTH macros to menu.h
core: Make replace_termcodes and friends accept length and cpo_flags

Reasons:
- One does not have to do `s[len] = NUL` to work with these functions if they do
  not need to replace the whole string: thus `s` may be const.
- One does not have to save/restore p_cpo to work with them.
core: Add findoption_len function

It is like findoption(), but works with non-NUL-terminated strings.
core: Add get_option_properties function
core: Add MAX_CHAR_LEN macros
tests/helpers: Call init functions other then mch_early_init
*: Start creating viml-lua translator

Progress so far:
- Slightly more then 50% of commands are covered by parsers.
- Almost no commands are supported by translator (mainly supporting block
  (:while/:if/:for/:try)).
- No commands use Vim API.
- No developer documentation.
- Existing implementation was not replaced.

- Top-level parser was created.
- Top-level translator was created, most of commands not covered by translator
  are expected to work automatically once underlying implementation is added.
- Lua bindings have incomplete types support, and complete operator and
  assignment support.

- Most of used functions that are to be documented are documented.

- Lua bindings do not support integers that do not fit into float: luajit
  appears to have integers, but not visible C function for creating them, lua
  5.3 integers support was not tested.
fix! Quick fix to the includes list of parser/ex_commands.h

This commit should go away once *.h files are properly refactored.
converter: Do not use lua_*integer functions
tests: Replace all viml moon tests with lua tests

Reason: busted/luajit/whatever enters infinite cycle when using .moon tests.

Reason for entering infinite cycle is not known. This commit fixes tests (at
least, on my machine), but not the bug.

Ref #903
scripts: Make it build with GCC and macros-generated declarations

GCC may emit declarations like the following:

    static size_t

    # 42 "this/file.c"
    function(args)

for code like this:

    static FDEF(function)

. Declaration generator script does not expect `# …` inside declarations. This
commit makes it treat such things as comments.
translator/tests: Fix format warning emitted by GCC

`%o` format is only used for unsigned integers. Also add test to make sure that
`-octal` is parsed as `(unary-)((octal))`: otherwise translator will have to add
special handling for leading unary minus.
build: Compile static luajit library with -fPIC

Should fix the following travis error:

    /usr/bin/ld: /opt/neovim-deps/lib/libluajit-5.1.a(lj_err.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
    /opt/neovim-deps/lib/libluajit-5.1.a: could not read symbols: Bad value
testhelpers: Add code for dumping objects

Untested