Create new OS module

This module will contain all functions that perform OS calls such as IO,
filesystem access, etc.
Add missing include guard to os module
Added curl support and one test

Now it checks for the existance of curl after
failing to find wget.

Note that I ended up removing the quotes around $url
when referencing it in the call to wget, since urls can't have spaces
anyways, and the correct quoting was messy.

To test, I did

    rm -r .deps
    make clean
    make cmake
    make

And it worked.
Silenced wget's progress bar

This way it won't show up in travis-ci like:

    0% [                                       ] 0           --.-K/s
    100%[======================================>] 371,453     --.-K/s
silence tar when getting libuv
Arch linux link in TOC had the wrong indentation
Add local.mk include in makefile

This can be used by devs that need their own custom targets
CMakeLists: add install target for nvim
Makefile: add install target

This simply calls the install target in the build directory. IMHO I
think it's looking a bit hacky having a separate Makefile target to do
this rather than using the usual CMake workflow but mine is not to
reason why... [Also, I've copied ``cd build && make ...`` although I'm
sure ``$MAKE -C build/ ...`` is probably the Right Thing (TM).]

Note that you'll have to set CMAKE_INSTALL_PREFIX on the cmake command
line to change where this installs to.
Makefile: allow configuration of CMake flags

Although CMAKE_FLAGS was already a Makefile variable, it didn't have an
empty default value meaning that extending the flags to CMake in a clean
way was difficult. Add a CMAKE_EXTRA_FLAGS variable which is appended to
the default flags.
add installation as a travis test

Not only should we pass the test suite but we should also install
successfully.
os_unix: Use libuv uv_cwd instead of getcwd/getwd.
Modify travis script to remove testing noise