[RFC] Port vim's breakindent patch to neovim's codebase. (vim patches 7.4.338, 7.4.346, 7.4.352, 7.4.353, 7.4.370, 7.4.371, 7.4.388)

Using vim's patches 7.4.338, 7.4.346, 7.4.352, 7.4.353, 7.4.370, 7.4.371, 7.4.388 by Christian Brabandt.

Fixes issue #501.
`int` should be replaced with `bool` and `FALSE` with `false`.