rust-mode.el uses the 'cl macros, so it should actually require them

Without this change, rust-mode doesn't work if 'cl hasn't been required
by something else, apparently.  I'm not entirely sure what changed such
that I started seeing this problem instead of not, but maybe the emacs
world has been making progress towards not loading 'cl at runtime if
it's only needed at compile time.
etc: rework of how libuv is integrated into the build

- thanks to work in libuv's upstream, we can call libuv's Makefile directly
with parameters, instead of descending in gyp-uv madness and generating
our own.
rt/std: update of libuv API glue for libuv submodule update
build: tweak rt.mk, as per graydon.. CFLAGS had to stay
build: point libuv at olsonjeffery/libuv, temporarily
build: ifdef for mingw/non-mingw builds
std: strip sillyness from debug comment in iotask teardown
build: change libuv to point at joyent's repo and make unpatched build libuv work on mingw
build: add link flag for freebsd libuv build
std: fix libuv structs on macos
treemap: use an &mut parameter for skew and split

results in a small performance improvement and reduces the compiled
code size
treemap: avoid swap_unwrap in insert

Performance before:

    std::treemap::TreeMap
                   sequential_ints 0.151877 s
                       random_ints 0.160926 s
                       delete_ints 0.08694 s
                sequential_strings 0.316458 s
                    random_strings 0.290778 s
                    delete_strings 0.169892 s

Performance after:

    std::treemap::TreeMap
                   sequential_ints 0.083971 s
                       random_ints 0.095861 s
                       delete_ints 0.083931 s
                sequential_strings 0.278272 s
                    random_strings 0.240286 s
                    delete_strings 0.173581 s
avoid explicit reborrow in heir_swap
treemap: cut down on swap_unwrap in remove

Performance before:

    std::treemap::TreeMap
                   sequential_ints 0.083971 s
                       random_ints 0.095861 s
                       delete_ints 0.083931 s
                sequential_strings 0.278272 s
                    random_strings 0.240286 s
                    delete_strings 0.173581 s

Performance after:

    std::treemap::TreeMap
                   sequential_ints 0.083297 s
                       random_ints 0.097644 s
                       delete_ints 0.052602 s
                sequential_strings 0.287326 s
                    random_strings 0.242372 s
                    delete_strings 0.142269 s
Use topmost span for macro expansion location. Fixes behaviour of file!, line! and col!
Add test for using line! in a macro
Update copyright years
Merge pull request #4873 from jld/rust-mode-wants-cl-when

rust-mode.el uses the 'cl macros, so it should actually require them
Merge remote-tracking branch 'cyndis/expansion-span'
Fix license block