Consume once fns when calling them (#2549).
Permit moving out of captured upvars in once fns. Close #2549.
Add tests for once functions (#2549).
Hide the once-move-out privilege for stack fns behind '-Z once-fns'
Oops, hide 'unless once fn' error message hint behind -Z once-fns too.
rust.vim: Links previously unused rustFuncCall

This allows for highlighting of function calls
for free floating, member, and static functions.
rustpkg: Begin allowing package scripts to call the default build logic

rustpkg/api.rs provides functions intended for package scripts to call.
It will probably need more functionality added to it later, but this is
a start.

Added a test case checking that a package script can use the API.

Closes #6401
iterator: Add `IteratorUtil::max_by/min_by` method
Update version number to 0.7-pre.

There's a reason we didn't update this after 0.6 but I don't know
what it is. Let's see what breaks.
Convert vec::[mut_]slice to methods, remove vec::const_slice.
Convert vec::{head, tail, init, last} (and similar fns) to methods.
auto merge of #7403 : catamorphism/rust/package-scripts, r=brson

r? @brson (or @graydon if available) rustpkg/api.rs provides functions intended for package scripts to call.
It will probably need more functionality added to it later, but this is
a start.

Added a test case checking that a package script can use the API.

Closes #6401
Remove many shared pointers

Mostly just low-haning fruit, i.e. function arguments that were @ even
though & would work just as well.

Reduces librustc.so size by 200k when compiling without -O, by 100k when
compiling with -O.
Convert vec::{pop, shift, unshift, insert, remove, swap_remove} to methods.
Convert vec::{push, push_all, push_all_move} to methods.
Convert vec::truncate to a method.
Convert vec::retain to a method.
Convert vec::{partition, partitioned} to methods.
Convert vec::{reserve, reserve_at_least, capacity} to methods.
extra: silence some test warnings.