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.
First working version of expression parser

WARNING: part of expr.c after //FIXME!!! must be deleted after I figure out how 
         to properly do tests.

TODO: tests, documentation, command-line parser (expr.c holds only expression 
      parser)

Ref #170
Fix SEGV when parsing curly braces name
Fix parse_func_call
Report other positions
Fix Fix typo: s/Then/Than

Thanks for @ChrisWatkins
Rename OperatorType to CaseCompareStrategy
Use clearer names: s/subnode/children, s/next_subnode/next
Fix copy-paste typo
Fix parse_dictionary SEGV, make parse_name reuse results of parse_dictionary
Make it not lose part of variable name after last curly brace and s: prefix

Previously in `{abc}def` `def` was lost, in `s:{abc}` `s:` was lost (but not in 
`s:abc{def}`)
Export parse0, remove some unused variables
Include vim.h so that __ARGS macros is defined
Automatically import headers by using cpp to preparse them