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
Remove pthread fatal check from CMakeLists.txt #891
README: Add Bountysource badge. #854
LICENSE: add LuaJIT notice. #899
Update pt_BR translation: Sync to a3214803429e05635cbfbe8b3050a73406da6bc6
Update pt_BR translation: Improve translations.

[ci skip]
Merge #892 'Update pt_BR translation'
Update German translation: Sync to 9f1b9726fb28f78fba7c50efa5316c4bf2413cf8.
Update German translation: Improve translations.

* Translate missing and fuzzy strings.
* Fix grammatical errors.
* Rewordings for consistency.
Merge #780 'Update German translation'
Remove include for sys/select.h in vim.h #890

- There is no need to include sys/select.h anymore
- Removed HAVE_SYS_SELECT_H from config.h.in
Temporarily switch python-client branch for testing
wstream: document default value for 'maxmem'
wstream: Pass WBuffer refcount as a constructor parameter

This is required to handle broadcasting when the first write fails.

Ref: https://github.com/tarruda/neovim/commit/11916b6b595421ce2ece10f7aa40757cc4937c0c#commitcomment-6792287