Use cmake module instead of shared for nvim-test

On a Mac using shared creates libnvim-test.dylib which cannot be found
by the hardcoded .so extension in helpers.moon, causing the unittests to
fail. However, using module creates libnvim-test.so, allowing the tests
to run. There will still be problems running the tests on windows,
because both shared and module create dll file which will not be found
by in helpers.moon.
Extract garray.c from misc2.c

Start to split misc2.c in many other files (see #209).
Include "garray.h" in ex_cmds2.c
MAKE: ask gnulikes to warn and be pedantic

It seems clang 3.4 thinks the codebase is in fantastic shape and gcc 4.9.0
has only minor niggles, which I will fix in a follow-up commit
fix uninitialized member warning

In DEBUG mode the expr member doesn't get properly initialized to NULL.
fix warnings about directive inside of macro's

On some platforms/compilers, sprintf is a macro. Putting macro directives
inside of a macro is unportable and gcc 4.9 warns about that.
fix signed vs. unsigned comparison warning

The in-memory table will luckily not even come close to the limits imposed
by ssize_t. If it ever reaches that, we've got bigger problems.