Change neo* configurations to n* configurations
Extract pos.h from structs.h

This will make it much simpler to move the other types in structs.h
which depend on `pos_T` and `lpos_T`.
Move exarg_T and cmdarg_T from structs.h to normal.h
Extract cursor_shape.c from misc2.c and types/consts from structs.h
Remove CURSOR_SHAPE #ifdef tests

See issue #333
Refactor travis build to use clang's sanitizers

- Valgrind configuration removed
- Fix errors reported by the undefined behavior sanitizer
- Travis will now run two build steps:
  - A normal build of a shared library for unit testing(in parallel with gcc)
  - A clang build with some sanitizers enabled for integration testing.

After these changes travis will run much faster, while providing valgrind-like
error detection.
refactored logic from init_users() into mch_get_usernames()
moved mch_get_user_name() and mch_get_uname() into os/users.c
removed get_user_name() and replaced calls with mch_get_user_name()
refactored part of expand_env_esc() into mch_get_user_directory()
Fix: Use an assert to make sure, an error message can be copied into buffer buf in mch_dirname().

The copied error message is NUL-terminated.
Remove remaining hangul-related code
add .vimrc and src/.ycm_extra_conf.py
Include <stdint.h> in types.h
Replace UINT32_T by uint32_t
Remove useless sizeof(uint32_t) == 4 test
Extract indent_c.c from misc1.c
Adapt include guards to the style guide
Use include paths relative to src/

As described in Google's style guide, the basis for Neovim's

> All of a project's header files should be listed as descendants of the
> project's source directory without use of UNIX directory shortcuts .
> (the current directory) or .. (the parent directory).

Add src as an include directory to facilitate this.
Moved more functions from misc1.c to indent.c