keep statusline within window width. @oni-link fix #858

PR #866
ref #858
ga_growsize should be >= 1

I know it could be 0 sometimes. Running the tests with
`assert(gap->ga_growsize > 0)` in ga_grow() crashes nvim while running the
tests.

 - Add a setter for ga_growsize that checks whether the value passed is >=1 (log
	 in case it's not)
 - log when ga_grow() tries to use a ga_growsize that's not >=1
 - use GA_EMPTY_INIT_VALUE is many places
Introduce GA_APPEND()

This macro is used to append an element to a growable array. It replaces this
common idiom:

   ga_grow(&ga, 1);
   ((item_type *)ga.ga_data)[ga.ga_len] = item;
   ++ga.ga_len;
Introduce ga_append_via_ptr() and GA_APPEND_VIA_PTR()

Similar to GA_APPEND(). Replaces this pattern:

    ga_grow(&ga, 1);
    item_type *p = ((item_type *)ga.ga_data) + ga.ga_len;
    p->field1 = v1;
    p->field2 = v2;
    ga.ga_len++;
Merge #830 'GA_APPEND() and GA_APPEND_VIA_PTR()'
clarify LICENSE and README #899
README: fix links
Start creating viml-lua translator

Progress so far:
- Slightly more then 50% of commands are covered by parsers.
- Almost no commands are supported by translator (mainly supporting block
  (:while/:if/:for/:try)).
- No commands use Vim API.
- No developer documentation.
- Existing implementation was not replaced.

- Top-level parser was created.
- Top-level translator was created, most of commands not covered by translator
  are expected to work automatically once underlying implementation is added.
- Lua bindings have incomplete types support, and complete operator and
  assignment support.

- Most of used functions that are to be documented are documented.

- Lua bindings do not support integers that do not fit into float: luajit
  appears to have integers, but not visible C function for creating them, lua
  5.3 integers support was not tested.
Do not use lua_*integer functions
Replace all viml moon tests with lua tests

Reason: busted/luajit/whatever enters infinite cycle when using .moon tests.

Reason for entering infinite cycle is not known. This commit fixes tests (at
least, on my machine), but not the bug.

Ref #903