Allow most old tests to pass with nocp.

test69.in:
    because 'nocp' sets 'esckeys', add an extra <esc> to avoid 'tm' pause.
Allow the rest of the old tests to pass with nocp.

test40.in, test60.in, test_breakindent.in, test_listlbr.in, test_listlbr_utf8.in:
    To avoid <tab> triggering wildmode, set wildchar to 'cp' default.

test_breakindent.ok:
    Modify expectations to avoid cpoptions+=n
Make migrated test33 more similar to old legacy test.

Remove `expandtab` and add a missing trailing space from the legacy test.
Fix warnings: edit.c: ins_compl_next_buf(): Np dereference: MI.

Problem    : Dereference of null pointer @ 3247.
Diagnostic : Multithreading issue.
Rationale  : Problem only occurs if global `ctrl_x_mode` is modified
             while calling function is executing.
Solution   : Use local copy instead of global.
Fix warnings: message.c: msg_attr_keep(): Np dereference: FP.

Problem    : Dereference of null pointer @ 179.
Diagnostic : False positive.
Rationale  : Error occurs if `s` paramater is null, which should not
             happen.
Resolution : Declare parameter as non null.
Merge pull request #1510 from three-comrades/testnocp

Allow all tests to pass with 'nocp'
Merge pull request #1618 from elmart/clang-analysis-fixes-5

Fix clang analysis warnings. (5)
strings: Remove NONNUL_ALL from NULL-taking functions.

vim_strup() is only used in a couple places, with no NULLs possible, so
keep the attribute and remove the NULL check.
api: Handle NULs and newlines in buffer_*_line.
api: Add tests for when not to handle NULs.
Merge pull request #1341 from splinterofchaos/api-nul

Api: Improve Nul handling
Merge pull request #1589 from splinterofchaos/fix-const-atter

strings: Remove NONNUL_ALL from NULL-taking functions.
msgpack-rpc: Allow registration of handlers by other modules
ui: Add abstract_ui termcap and split UI layer

This is how Nvim behaves when the "abstract_ui" termcap is activated:

- No data is written/read to stdout/stdin by default.
- Instead of sending data to stdout, ui_write will parse the termcap codes
  and invoke dispatch functions in the ui.c module.
- The dispatch functions will forward the calls to all attached UI
  instances(each UI instance is an implementation of the UI layer and is
  registered with ui_attach).
- Like with the "builtin_gui" termcap, "abstract_ui" does not contain any key
  sequences. Instead, vim key strings(<cr>, <esc>, etc) are parsed directly by
  input_enqueue and the translated strings are pushed to the input buffer.

With this new input model, its not possible to send mouse events yet. Thats
because mouse sequence parsing happens in term.c/check_termcodes which must
return early when "abstract_ui" is activated.
msgpack-rpc: Add remote_ui module

The remote_ui module is an implementation of the UI layer, and it attaches UI
instances that redirect redraw notifications to connected clients.
test: Add screen test facility implemented as a remote UI