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
Export free_node and fix SEGV in parse4
Remove uneeded cdef
Add parse0_err function, move test code to expr-main.c
Fix parse_subscript: var[10:10] was not parsed correctly
Fix parse_option position, do not include sigil in env vars and .subscripts
Add comment about `@`, use s + 1 as register end

This way end_position always points to register name, whoever will use parsed 
value he should alias `"` and `\0`.
Fix some lint errors