Use loader_path instead of executable_path for osx

According to apple's documentation of rpath semantics, @executable_path means
that the path is relative the the *process executable*, not necessarily the
library in question. On the other hand, @loader_path is the path that points to
the library which contains the @loader_path reference. All of our rpath usage is
based off the library or executable, not just the executable. This means that on
OSX we should be using @loader_path instead of @executable_path to achieve the
same semantics as linux's $ORIGIN.
Add make check support(arm-linux-androideabi debuginfo)
Re-arranging some things in btree.rs to accommodate testing.
auto merge of #10261 : ksh8281/rust/makecheck_debuginfo_arm-linux-androideabi, r=brson

In order to pass make check on android target

credit to @ksh8281
Clarify which errors are format string errors

There were a few ambiguous error messages which look like they could have
cropped up from either the rust compiler for the format string parser. To
differentiate, the prefix 'invalid format string' is now added in front of all
format string errors.

cc #9970
auto merge of #10299 : alexcrichton/rust/osx-loader-path-fix, r=brson

According to apple's documentation of rpath semantics, `@executable_path` means
that the path is relative the the *process executable*, not necessarily the
library in question. On the other hand, `@loader_path` is the path that points to
the library which contains the `@loader_path` reference. All of our rpath usage is
based off the library or executable, not just the executable. This means that on
OSX we should be using `@loader_path` instead of `@executable_path` to achieve the
same semantics as linux's $ORIGIN.

The purpose of this is to unblock the current snapshot from landing. It appears that because we were propagating linker arguments we never saw this before. Now that we're no longer printing linker arguments, we're depending on the libraries to resolve their own references. In using `@executable_path` on OSX, libraries in different locations than the executable were not able to resolve their references (because their rpaths listed were all relative to the location of the library, not the executable).

I'm still a little unclear on how this ever passed locally on my own machine, but it's clear why this is failing on the bots at least.
fix alignment of pthread_attr_t

Closes #10300
auto merge of #10305 : thestinger/rust/align, r=alexcrichton

Closes #10300
fix some cfail test cases for arm
auto merge of #10306 : alexcrichton/rust/issue-9970-better, r=huonw

There were a few ambiguous error messages which look like they could have
cropped up from either the rust compiler for the format string parser. To
differentiate, the prefix 'invalid format string' is now added in front of all
format string errors.

cc #9970
auto merge of #10314 : ksh8281/rust/fix_some_cfail_test_cases_for_arm, r=yichoi

adding #[cfg(target_arch = "arm")] for asm of cfail test cases
auto merge of #10289 : nikomatsakis/rust/issue-10157-TypeContents-refactor, r=pcwalton

See #10157. This compiles now.

Fixes #10278.
Fixes for compilation to iOS:

- remove /usr/include from the include path since the iOS SDK provides the correct version
- `_NSGetEnviron()` is private and not available on iOS
- `.align` without an argument is not allowed with the Apple tools. 2^2 should be the default alignment
- ignore error messages for XCode < 5
- pass include path to libuv
auto merge of #10227 : kud1ing/rust/ios, r=alexcrichton
Added positive tests for integer literal base interpretation.
Register new snapshots
auto merge of #10328 : alexcrichton/rust/snapshots, r=thestinger
add `from_send` to Rc, since #9509 is fixed
auto merge of #10322 : thestinger/rust/no_freeze, r=alexcrichton
update for ndk r9b