hashtab.h: don't include vim.h

Including vim.h in another header filer is asking for trouble. Test code
that includes separate header files (e.g.: cimport './src/nvim/buffer.h'),
has a really bad time with this. This is just one piece of the puzzle
though.
vim: move long_u from vim.h to types.h

Seems to make no difference to the main binary, but it helps the tests a bit
further along.
vim: move linenr_T and colnr_T to pos.h

Try to cut down vim.h's size. It's keeping us from testing more things.
vim: move disptick_T from vim.h to syntax_defs.h

Make vim.h smaller, bit by bit.
test/preprocess: always declare EXTERN

Unit tests never need to declare globals, only access them. In the main code
base this is handled by including "vim.h". If a file wants to declare
globals (in the case of neovim that's only main.c), it #define's EXTERN and
includes "vim.h". Otherwise, a file just includes "vim.h" (that's the
majority case). Since we want to be able to run unit tests without including
"vim.h", we predefine "EXTERN" to mean extern. That way, we don't have to
include "vim.h".
vim: move vim_acl_T to types.h

Also include "types.h" in os_unix.h because it declares functions that
return vim_acl_T.
memory.h: don't include vim.h in header files

Also include stdint.h in khash.h. It was transitively included by vim.h via
memory.h before. khash.h accidentally relied on that.
test/helpers: add 'vim_init' helper

- Initializes some global variables.
- Necessary for the buffer tests in PR #904.
test/fs: move tests of path_full_dir_name to path

Move tests of path_full_dir_name to path_spec. It is only defined in path.h.
Not sure why this works most of the time (I can only trigger a failure when
running under lldb).

It's a more logical place to have the test as well.
vim: include used definitions in headers

This is not an exhaustive commit, it merely ameliorates the situations a
bit. There are quite a few header files that don't include all the types
they use in their function/struct/... definitions. This throws of the
testing infrastructure (but is not such a problem for the main binary that
has the "tumbleweed of includes"-phenomenon).
Merge pull request #941 from aktau/improve-luajit-ffi-preproc

refactor includes + improve testing infrastructure
travis.sh: move symbolizer definition into common area
Merge #956 'travis.sh: move symbolizer definition into common area'
Move po generation from Make to CMake.

Fixes #902: localization build: `install`, `uninstall`, `prefixcheck
targets.  All the language-related bits will now build under CMake.
Changes include:

  * Moving all non-generated sources into the NEOVIM_SOURCES variable
    to aid in generating the .pot file.
  * Moving a couple generated sources from NEOVIM_SOURCES and into
    NEOVIM_GENERATED_SOURCES.
  * Added NEOVIM_HEADERS to the executable and the library for folks who
    are using something other than Ninja or makefiles (that way the
    headers will show up in the IDE files).
  * Now uses gettext's `--update` switch to update the .po files, rather
    than doing a fragile `mv` dance that could leave you with a broken
    working tree if you press CTRL-C at the right time.
  * Creates `update-po-${LANG}` targets for updating individual
    languages, just like the original Makefile.
  * Also adds the `update-po` target for updating all the languages.
  * Ported the `check-${LANG}` style targets.  They're
    `check-po-${LANG}` under CMake.
  * Handles all the one-off instances that were in the original
    Makefile.  Fixed up ko.UTF-8.po to include the "Original
    translation" line like other .po files to make the generation of the
    "Generate from ..." comments consistent.  Updated ko.po with the new
    text.
Customize the log file for the check targets based on the input file.

The idea being that it's better to segregate feedback, just in case
someone is working on several translations.  Now the check log will
appear in `./build/src/nvim/po/check-${LANG}.log`.
Merge #928 'Move po gen to cmake'
Revert "Merge #928 'Move po gen to cmake'"

This reverts commit 53fba180c32724809d8ab35238eea68440b7ac97, reversing
changes made to a3b3db8256c259d10957d45666cf4179e328f3f4.
Customize the log file for the check targets based on the input file.

The idea being that it's better to segregate feedback, just in case
someone is working on several translations.  Now the check log will
appear in `./build/src/nvim/po/check-${LANG}.log`.
Move po generation from Make to CMake.

Fixes #902: localization build: `install`, `uninstall`, `prefixcheck
targets.  All the language-related bits will now build under CMake.
Changes include:

  * Moving all non-generated sources into the NEOVIM_SOURCES variable
    to aid in generating the .pot file.
  * Moving a couple generated sources from NEOVIM_SOURCES and into
    NEOVIM_GENERATED_SOURCES.
  * Added NEOVIM_HEADERS to the executable and the library for folks who
    are using something other than Ninja or makefiles (that way the
    headers will show up in the IDE files).
  * Now uses gettext's `--update` switch to update the .po files, rather
    than doing a fragile `mv` dance that could leave you with a broken
    working tree if you press CTRL-C at the right time.
  * Creates `update-po-${LANG}` targets for updating individual
    languages, just like the original Makefile.
  * Also adds the `update-po` target for updating all the languages.
  * Ported the `check-${LANG}` style targets.  They're
    `check-po-${LANG}` under CMake.
  * Handles all the one-off instances that were in the original
    Makefile.  Fixed up ko.UTF-8.po to include the "Original
    translation" line like other .po files to make the generation of the
    "Generate from ..." comments consistent.  Updated ko.po with the new
    text.
Fix some newline issues in the sv translation.