libnative: Implement get_host_addresses.
native: Don't use timerfd on Android

It doesn't seem to exist.
Replace '*' by '..' in the doc of pattern matching
Add '@' subpattern binding and examples to manual and tutorial
Remove reexport field
Move macro_rules! macros to libstd

They all have to go into a single module at the moment unfortunately.
Ideally, the logging macros would live in std::logging, condition! would
live in std::condition, format! in std::fmt, etc. However, this
introduces cyclic dependencies between those modules and the macros they
use which the current expansion system can't deal with. We may be able
to get around this by changing the expansion phase to a two-pass system
but that's for a later PR.

Closes #2247
cc #11763
Delete ignore! macro

This was a holdover from when we didn't allow nested comment blocks
(think #if 0). It isn't used anywhere.
Fix a spuriously tripped assert in select()

The race here happened when a port had its deschedule in select() canceled, but
the other chan had already been dropped. This meant that the DISCONNECTED case
was hit in abort_selection, but the to_wake cell hadn't been emptied yet (this
was done after aborting), causing an assert in abort_selection to trip.

To fix this, the to_wake cell is just emptied before abort_selection is called
(we know that we're the owner of it already).
libstd: Use iotest! for for get_host_addresses.
libnative: Avoid gai_strerror on windows.
Add support for arbitrary flags to MemoryMap.

This also fixes up the documentation a bit, it was subtly incorrect.
Use `mmap` to map in task stacks and guard page

Also implement caching of stacks.
Update task-perf-one-million
Add benchmarks
Fix zero-sized memory mapping
Fix some docs about rt
Fixed iter's is_empty to use is_none() and added relevant test flag
Uppercase numeric constants

The following are renamed:

* `min_value` => `MIN`
* `max_value` => `MAX`
* `bits` => `BITS`
* `bytes` => `BYTES`

Fixes #10010.
Fix spacing in example comment.
Implement barrier.