Move declarations to {fname}.generated.h

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

Some files are missing *.generated.h files and corresponding 
INCLUDE_GENERATED_DECLARATIONS-protected #include. These will be processed 
later: dealing with them is not as easy as “just run stripdecls.py script”.
Move documentation for path.c
Do not save $#hlines, add some dies
Move documentation from memory.h to memory.c
Fix style of os_get_total_mem_kib and os_chdir function definitions
Move documentation out of os.h
Move all declarations to *.generated.h

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

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.
Move INCLUDE_GENERATED_DECLARATIONS-protected include out of #if*

To search for such includes

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

was used. This could miss some wrong positions.