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()