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.
Add unit tests for mch_isdir.
Remove static declaration of executable_file.

Since static functions are only visible in the file in which they are
defined, this needs to be done in order to unit test the function.
Add unit tests for executable_file and mch_can_exe.

Caution: There is a pending test which should be implemented.
Port mch_isdir to libuv.
Implement pending test.
Remove USE_SYSTEM and code only run under USE_SYSTEM
Issue #66 - Add lint tool and uncrustify config. Update contributing documentation on coding style.
Extract crypt.c from misc2.c