rename send_map to hashmap

This makes the module much more discoverable, and is in line with the
'treemap' naming.
get rid of the std::map::Map LinearMap impl

This legacy trait needs to be dropped in order to migrate to
core::container::Map, which doesn't require @ and Copy, and will make
proper use of borrowed pointers.
rename hashmap find/get -> find_copy/get_copy
rename hashmap find_ref/get_ref -> find/get
add find method to the core::container::Map trait
remove the LinearMap get_copy method

This isn't simpler (or faster) than just doing the copy in the caller,
and it doesn't work for types that can be cloned but not copied.
remove cautionary wording in the hashmap docstring

it's pretty solid, at least relative to most of the other modules
rm unnecessary usage of 'unsafe' from hashmap
improve hashmap/treemap documentation
switch LinearMap to current constructor convention
fix core-map.rs benchmark
add ABIInfo trait and separate x86-64 ABI implementation from foreign trans

ABIInfo provides a method to translate the type of foreign function.
The foreign trans uses the method to get ABI-specific type and
uses the result to generate LLVM instructions for wrapper and shim functions.
Merge pull request #4601 from jbclements/cleanup-and-test-cases

fix trailing whitepace
test: fix benchmark unsafe blocks, r=burningtree.
Merge pull request #4590 from crabtw/abi

add ABIInfo trait and separate x86-64 ABI implementation from foreign trans
fix tests
libcore: Add range_step and range_rev functions.

Closes #1817
libcore: Correct behaviour of range_step for uint, tests for range* functions.

Splits the range_step function into the two directions (up, low -> high,
and down, high -> low) for the uint types, since there is no way to have
`step < 0` for a backwards range.
Add a T_SIGNED type to uint template and eliminate step_down variant

Handle negative steps properly in range_step, fix order of arguments
in tests, and such.
Revert back to the correct libuv revision