Better error message for semicolon on the last line of a function

closes #8005
auto merge of #11482 : fhahn/rust/issue-8005-better-error-msg-semi-last-stmt, r=alexcrichton

This is a patch for #8005, thanks @lfairy for the hint.

It seems like `block.expr` is None, if the last line of a function has a semi colon (= it ends with a statement).

@kmcallister does this error message cover the intended use cases? 
I'm not sure about the message, the wording and the span could probably be improved.
libsyntax: Make managed box `@` patterns obsolete
xfail another native test on android (#11419)
auto merge of #11518 : brson/rust/moreandroidxfails, r=alexcrichton
librustc: Remove `@` pointer patterns from the language
auto merge of #11305 : pcwalton/rust/at-patterns, r=pcwalton

r? @nikomatsakis
librustc: Don't allow use after move of implicitly coerced object. Fixes #11481.
librustc: Don't translate an expr twice when implicitly coercing to a trait object. Fixes #11197.
auto merge of #11525 : luqmana/rust/trait-coercions, r=pcwalton

Fixes 2 annoying issues with implicit trait object coercion: #11481 & #11197.
mk: Make TESTNAME and VERBOSE work with android. Closes #10957
std: Ignore bind error tests on android. #11530
auto merge of #11531 : brson/rust/yetmoreandroidfixes, r=alexcrichton
dox: Write a guide to the rust runtime
auto merge of #11501 : alexcrichton/rust/dox, r=brson

The official documentation sorely needs an explanation of the rust runtime and what it is exactly, and I want this guide to provide that information.

I'm unsure of whether I've been too light on some topics while too heavy on others. I also feel like a few things are still missing. As always, feedback is appreciated, especially about things you'd like to see written about!
Completed patch searching for rust docs
Made temporary changes to include multiple keywords in rustdoc search

Implemented search based on multiple keywords

Added some commenting and house cleaning

Added path searching to rustdoc
Update .po and strip down untranslated entries.

This work is done by execute these commands manually:

$ po4a --copyright-holder="The Rust Project Developers" \
    --package-name="Rust" \
    --package-version="0.10-pre" \
    -M UTF-8 -L UTF-8 \
    doc/po4a.conf
$ for f in doc/po/**/*.po; do
>   msgattrib --translated $f -o $f.strip
>   if [ -e $f.strip ]; then
>       mv $f.strip $f
>   else
>       rm $f
>   fi
> done

It should be managed by the build system automatically to use in our
translation workflow, but I've not yet done that.

Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
Add notes for translators.

Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
Note that translation workflow is WIP now.

Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
renamed empty() to is_empty()