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.
Make Travis compile on GCC and Clang.
Add unit tests for ported filesystem functions.
Remove dead stack-checking code.

Code under HAVE_STACK_LIMIT is not used.
The definition was commented out in rev 180 of the original
Mercurial repo, and then completely removed in rev 2520,
but the code guarded by it was left in.
Remove traces of old custom undo memory manager.

There were two memory management implementations,
standard malloc-based, and a custom allocator.

Removed in rev 2230 in the Mercurial repo.
Move some of misc1.c to indent.c.

My little contribution to #209.
README.md: Fixed brew install instructions
Anchor gitignore paths

This makes the intention more explicit and avoid any accidental
matching elsewhere in the tree.

Conflicts:
	.gitignore
Rename and refactor mch_FullName.

* Rename mch_FullName to mch_full_name to match the style guide.
* Add mch_full_dir_name, which saves the absolute path of a given
directory relative to cwd into a given buffer.
* Add function append_path, which glues together two given paths with a
slash.
* Adapt moonscript coding style to the tests.
Correct a few parentheses.
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.