Remove modelines

Removed modelines are better than modelines that differ from file to
file.
Configure travis to use prebuilt dependencies

Dependencies are now hosted in a github repository and this brings two advantages:

- Improved build time with travis since we no longer have to build each
  dependency
- Less chance of build errors due to external servers being down since Github is
  now the single point of failure
Handle special KE_EVENT case where maxlen < 3

Possible bug reported by @oni-link [here](https://github.com/neovim/neovim/pull/485/files#r11664573).

It was handled by doing a circular walk through a key buffer and saving the
index between calls with a static variable.

Also replaced some `char_u` occurrences by `uint8_t` and removed unused
headers in input.c module.
Remove 'textmode' option

'textmode' is an option obsoleted for at least 10 years in favor of
'fileformat'.
vim-patch:7.4.245

Problem:    Crash for "vim -u NONE -N  -c '&&'".
Solution:   Check for the pattern to be NULL. (Dominique Pelle)

https://code.google.com/p/vim/source/detail?r=80421d934ebde183ce545ab8d9eb3a4c2065c169
vim-patch:7.4.226

Problem:    Cursurline highlighting not redrawn when scrolling. (John
            Marriott)
Solution:   Check for required redraw in two places.

https://code.google.com/p/vim/source/detail?r=b650f2db8f9604124c0ddfb14af0c04bd4ae0580
Correct 'RichiH' name in BACKERS.md
update backers.md with bountysource survey responses
Deal with backpressure on RStream instances

Each RStream instance will now stop its libuv watcher when the buffer is full,
and automatically restart when some data is read with `rstream_read`.
Create EventType for RStream reading

RStream will be the main way Neovim receives asynchronous messages, so it is
best to have a specialized EventType for it. A new flag parameter was added to
`rstream_new` which tells the RStream instance to defer event handling for later
with KE_EVENT instead of handling it directly from libuv callback.
Refactor job control to use RStream events

Instead of a single 'job read' callback, job control consumers need to provide
callbacks for "stdout read", "stderr read" and "exit". For vimscript, the
JobActivity autocommand is still used to handle every job event, for example:

```vim
:let srv1_id = jobstart('netcat-server-1', 'nc', ['-l', '9991'])
:let srv2_id = jobstart('netcat-server-2', 'nc', ['-l', '9991'])

function JobEvent()
  " v:job_data[0] = the job id
  " v:job_data[1] = the event type, one of "stdout", "stderr" or "exit"
  " v:job_data[2] = data read from stdout or stderr
  if v:job_data[1] == 'stdout'
    let str = 'Message from job '.v:job_data[0].': '.v:job_data[2]
  elseif v:job_data[1] == 'stderr'
    let str = 'Error message from job '.v:job_data[0].': '.v:job_data[2]
  else
    " Exit
    let str = 'Job '.v:job_data[0].' exited'
  endif

  call append(line('$'), str)
endfunction

au JobActivity netcat-server-* call JobEvent()
```

And to see messages from 'job 1', run in another terminal:

```sh
bash -c "while true; do echo 123; sleep 1; done" | nc localhost 9991
```
Correctly free libuv handles

This ensures memory chunks for libuv handles are only freed after the event loop
no longer has references to it.
Extract writing boilerplate into wstream.c module
Refactor job.c module to use WStream

After a job has accumulated 1mb of stdin data we assume that it's stuck and kill
it.
Stop job prepare watcher when there are no jobs

No need to check for job status when no jobs are running
Free job data on close_cb
Remove unnecessary cleanup label from `job_start`

The argument vector is now freed in the `close_cb` function in job.c
Fix bug of `job_stop` not emitting `JobExit`

The `job_stop` function was calling `uv_read_stop` on the std{out,err} streams.
This is now responsibility of `RStream` and because of those calls `job_stop`
wasn't emitting the `JobExit` event.
Add missing names to BACKERS.md
Remove `lalloc_clear`

Use `xcalloc` instead. Change some local variables
to avoid casting.