Apply small refactor to unit tests

Redefine macro constants as enums in the ffi and import those in their
respective test modules.
Assert that vim_strsize and vim_strnsize gets a non-null parameter.
Merge branch 'master' into luaviml

Conflicts:
	test/unit/helpers.moon
	test/unit/misc1.moon
TO REMOVE: clean compile

clang likes to warn about empty translation units, /usr/bin/cpp doesn't like
C++-style comments after #endif
improve cimport function

There's a need to import a lot of headers once and never again, because the
luajit ffi doesn't like redefinitions of f.ex.: enums and various other
things. So if one test tries to import 'expr.h' and another 'genlua.h' which
also #include's "expr.h", then there will be trouble if 'expr.h' declares
enums, which it does.

Because of this, I've changed cimport() without arguments to just import a
list of headers and do nothing on a second call. That way each test can just
call cimport and get most of what they want. If they're missing something,
the relevant headers needs to be added to either "generic_headers" or
"project_headers".

NOTE: this is still not final, as the compiler is hardcoded to an unlikely
value on OSX standard right now, almost noone will have it.
test: move helpers.lua one level up

It's supposed to be usable for integration tests later too
test/expr-parser: use global cimport
declare 'genlua', the vim -> lua generator

There's nothing to see yet.
test/expr-compiler: add the viml -> lua compiler