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
Use _NSGetEnviron on Mac OS X to gain access to environ.

When building nvim as a shared library for testing, environ is not
exposed.  In order to gain access to the environment variables, you must
get a pointer to them from _NSGetEnviron().

It appears that this may affect the FreeBSD platform too.
Only include libintl's include dir if libintl was found.

This prevents an error from CMake when libintl is not found.  It's not a
required library, so we must wrap the inclusion in a conditional.  It
was already done for the library.
Setup better warning flags for Clang.
Fix a 'garbage value' warning found by Clang's static analyzer

 - Initialize lists in paragraph_start()
 - Remove two dead stores
MAKE: ask gnulikes to warn and be pedantic + fixes

It seems clang 3.4 thinks the codebase is in fantastic shape and gcc 4.9.0
has only minor niggles, which I fixed:

- 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.
Added a types.h with vim.h unsigned int typedefs.
Extract file_search.c from misc2.c

Continue to split misc2.c in many other files (see #209).

The only changed I made to the moved code was adding
`vim_free(ff_expand_buffer)` to `free_finfile()`. This is was needed
because `ff_expand_buffer` was moved from `misc2.c` to `file_search.c`.
CONTRIBUTING.md: mention coding style
Use $(MAKE) instead of ${MAKE}, and fixup two more make invocations.

Include a new SINGLE_MAKE which can be used to invoke make but using
only a single job, and in way that avoids any warnings from make.
Use SINGLE_MAKE to execute the tests, since they're meant to be run
serially.

Also, prefer the use of $(MAKE) to avoid invoking an extra subshell
(saves some time).
Clean-up main.c: follow STRNICMP replacement.
Be more explicit about OS X deps installation
Adding darwin platform to common.sh build script
README.md: remove lingering references to sha1sum in OSX instructions
Fixed nvim homebrew formula

I now also do make install
homebrew: deparallelize build
Remove __ARGS macro. Close #205

This is a squash of all commits sent to #81.

- Remove unused undef of __ARGS.
- Fix mch_rename declaration.
- Follow changes related to moved & extracted files.
- Properly indent function declarations of getchar.h and quickfix.c.
Use -Werror.

This makes all warnings errors. We don't want any warnings, so we should
enforce that.