Simplify the interface to check_fn by pulling some of the madness out to its callers
auto merge of #5309 : nikomatsakis/rust/simplify_check_fn, r=nikomatsakis

Simplify the interface to check_fn by pulling some of the madness out to its callers.

rs=refactor
Fix formatting and errors in std::getopts example.

There were three issues effecting the example in the getopts rustdoc:

1. The blockquote was incorrectly formatted.  Fixed by switching to using
   an explicit markdown code section with ```.
2. The `fail fail_str(f)` would not compile.  Fixed by using `fail!()` instead
   of `fail`.
3. The line `matches.free[0]` produced a compile error about moving from
   an immutable vector.  Fix by using `copy`.
Correct copyright year to be 2012-2013.

Previous year range of 2011-2013 was based on file creation date.  The
check_license python script, however, only accepts copyrights starting
in 2012 or later.
auto merge of #5308 : wanderview/rust/std-getopts-rustdoc-fix, r=luqmana

There were three issues effecting the example in the getopts rustdoc:

1. The blockquote was incorrectly formatted.  Fixed by switching to using
   an explicit markdown code section with ```.
2. The `fail fail_str(f)` would not compile.  Fixed by using `fail!()` instead
   of `fail`.
3. The line `matches.free[0]` produced a compile error about moving from
   an immutable vector.  Fix by using `copy`.
Implement vector destructuring from tail
Add one more test for vector destructuring
auto merge of #5122 : sanxiyn/rust/vec-match-tail-2, r=nikomatsakis

Incorporated @nikomatsakis's comments from #4748.

Fix #4635.