Initialize Object, Position

fix #778
thanks @genisaguilar
Merge #782 'Initialize Object, Position'
travis/coverity: add coverity support

Run only on push to branch coverity-scan. We can use a cron script to do
this 4 times a week (that's our allowance).

NOTE: possible future improvements are:

1. Fold the build matrix item into another short one so we don't overburden
   travis. It's a little less clear but it should be nicer on the
   infrastructure.
2. Change the security token, one can do that from the coverity admin page.
3. Don't do the naive `make depend`, but use the prebuilt libraries.
readme: add coverity scan badge
travis/coverity: hotfix, alwasy return success

It seems the coverity script likes to return 1 (error) when the current
branch does not follow its pattern. Temporarily disable that.
travis/coverity: hotfix #2, unbreak build

I hadn't spotted that the `sh -e` commandline was being used. I *think* this
is what's causing the exit 0 line not to run. Pray for success.

It's a real shame I can't this locally, what a mess.
Make it easier to turn the bundled dependencies off.
Fix unused variable when NDEBUG is defined.

Occurs when compiling with:
  rm -rf build/ && make clean && make cmake CFLAGS='-DNDEBUG' && make
  ^--important
Merge #714 'Fix unused variable when NDEBUG is defined'
Move documentation to *.c files

Uses a perl script to move it (scripts/movedocs.pl)
Also move documentation near static declarations
Move declarations to {fname}.generated.h

Adds a requirement: all type and structure definitions must be present before
INCLUDE_GENERATED_DECLARATIONS-protected include.

Current state is temporary: all *.generated.h files are to be removed.

Note: current *.generated.h do not depend on #ifdef’s (so may be incorrect on
some systems or with some build flags) and, as it was said previously, must be
removed shortly.

Also move INCLUDE_GENERATED_DECLARATIONS-protected include out of #if*: script
that adds them is dummy and does not know where it is adding.

To search for such includes

    ag '#\s*if(?!ndef NEOVIM_).*((?!#\s*endif).*\n)*#ifdef INCLUDE_GENERATED'

was used. This could miss some wrong positions.

Add -Wno-unused-function
Regenerate all *.generated.h files with gendeclarations.lua

Also made a bunch of old-style definitions ANSI

Warning: mch_expandpath (path.h.generated.h) was moved manually. So far it is
the only exception.
Replace gendeclarations.pl script with script for finding left declarations
Add automatic generation of headers
Also use generated documentation in a number of os/*.* files
Remove remaining declarations found by finddeclarations.pl
Restore memory.h headers list from master
Add a wrapper for msgpack.h
Surround nvim/func_attr.h includes with define/undef DEFINE_FUNC_ATTRIBUTES

Required for FUNC_ATTR_UNUSED to work in lib/k*