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
Extract keymap.c from misc2.c
Fix style issues.

* Rename mch_full_name to mch_get_absolute_path.
* Rename mch_is_full_name to mch_is_absolute_path.
* Add a lot of missing parentheses.
* Remove yoda-conditions for consistency.
* Remove spaces in function declaration.
cleanup environment variable handling + unit tests

  * removed a putenv() implementation which isn't needed anymore
  * mch_getenv() and mch_setenv() are now functions in src/os/env.c
  * removes direct calls to getenv() and setenv() outside of src/os/env.c
  * refactored the logic of get_env_name into mch_getenvname_at_index
  * added unittests for the functions in os/env.c
Luarocks appears to be down, so let's use the mirror for now.
Fix memory leak and enable valgrind on travis
Move garray_T from structs.h to garray.h
Move some types and consts from structs.h to other headers

 - `foldinfo_T` to `fold.h`
 - `context_sha256_T` to `sha256.h`
 - `tagname_T` to `tag.h`
 - `pumitem_T` to `popupmnu.h`
 - `prt_*_T` to  hardcopy.h`
 - `CPT_*` consts to `edit.h`
 - `vimmenu_T`, `MNU_HIDDEN_CHAR`, and `MENU_*` constants to `menu.h`