Add debug info tests
Omit discriminant from nullary univariant enums.

If an enum is isomorphic to unit, there's no need to use any bits to
represent it.  The only obvious reason this wasn't the case was because
the enum could be C-like and have a user-specified discriminant -- but
that value is constant, so it doesn't need to be stored.

This change means that all newtype-like enums have the same size (and
layout) as their underlying type, which might be a useful property to
have, at least in terms of making programs' low-level behavior less
surprising.
auto merge of #4866 : jld/rust/enum-unitlike, r=graydon

If an enum is isomorphic to unit, there's no need to use any bits to
represent it.  The only obvious reason this wasn't the case was because
the enum could be C-like and have a user-specified discriminant -- but
that value is constant, so it doesn't need to be stored.

This change means that all newtype-like enums have the same size (and
layout) as their underlying type, which might be a useful property to
have, at least in terms of making programs' low-level behavior less
surprising.
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
make Option's iter method use a lifetime
mk: Typo
mk: Run debuginfo tests by default, but only if gdb is available
std: fix libuv structs on macos
libcore: LinearMap doesn't need to pass around the bucket vec
core: rename hashmap test functions
core: add LinearMap::find_or_insert{,_with}

This allows for inserting a new value into the map only if it doesn't
already exist in the map.
Add NumCast trait for generic numeric type casts