Fix TwoWaySearcher to work when used with periodic needles.

There is a check in TwoWaySearcher::new to determine whether the needle
is periodic. This is needed because during searching when a match fails,
we cannot advance the position by the entire length of the needle when
it is periodic, but can only advance by the length of the period.

The reason "bananas".contains("nana") (and similar searches) were
returning false was because the periodicity check was wrong.

Closes #16589
bitv: make benchmarks always return a value

This makes sure that the benchmarked code does not get optimized away.
Also fixed a typo.

Fixes #12118.
arena: fix a typo
bitv: make sure benchmarks run long enough

Previously they were too short (less than 10 ns), so the benchmarker
could not resolve them meaningfully. Now they should run in the order of
100 ns.
fix module wording in guide

@kimundi was a bit worried this was misleading.
librustc: Create unboxing shims as necessary for unboxed closures.

Closes #16591.
librustc: Mark unboxed closure calls and definitions with appropriate llvm return/argument attributes.
Fix LLVM version in configure

Upstream LLVM from VCS already has version 3.6,
configure fixed appropriately to allow building with it
syntax: Fix complexity of string parsing. Closes #16624.
syntax: Test parsing of long binary strings
Use only 400000 characters to test slow string parsing.
make priorityqueue's from_iter use heapify
win64: Add missing #[repr(C)]

Signed-off-by: Peter Atashian <retep998@gmail.com>
auto merge of #16653 : steveklabnik/rust/module_wording, r=alexcrichton

@kimundi was a bit worried this was misleading.
auto merge of #16655 : pcwalton/rust/unboxed-closures-unboxing-shims, r=luqmana

Closes #16591.

r? @luqmana
auto merge of #16656 : luqmana/rust/ucmla, r=pcwalton

Gets rid of a FIXME in `base::get_fn_llvm_attributes`.

r? @pcwalton
configure: Recognize i686 build on msys2
auto merge of #16651 : vks/rust/fix-bitv-bench, r=alexcrichton

Fixes #12118.

(I sneaked in an unrelated one-character whitespace fix I spotted while reviewing some benchmarks, if that is not okay, I can create a separate pull request for that.)
librustc: Properly tag upvars in proc's to stop misleading unused_mut warnings.
Add support for trailing commas in more places

This lets the parser understand trailing commas in method calls, method
definitions, enum variants, and type parameters.

Closes #14240.
Closes #15887.