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
Fix LLVM version in configure

Upstream LLVM from VCS already has version 3.6,
configure fixed appropriately to allow building with it
make priorityqueue's from_iter use heapify
win64: Add missing #[repr(C)]

Signed-off-by: Peter Atashian <retep998@gmail.com>
configure: Recognize i686 build on msys2
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.
auto merge of #16658 : jauhien/rust/fix-llvm, r=thestinger

Upstream LLVM from VCS already has version 3.6,
configure fixed appropriately to allow building with it
auto merge of #16663 : Gankro/rust/heapify, r=alexcrichton

Heapify is O(n), extend as currently implemented is O(nlogn). No brainer.

Currently investigating whether extend can just be implemented as a local heapify.
auto merge of #16667 : retep998/rust/master, r=pcwalton
Improve TwoWaySearcher comments.
test: Convert Window path to MSYS path

When MSYS shell executes program, if its arguments look like MSYS paths,
MSYS automatically converts them into Windows paths.
For example, `/c/path:/d/path` becomes `C:\path;D:\path`.
However, if there is only one path e.g. `/c/path`, it becomes `C:/path`.

maketest.py reverts the behavior to reduce confusion between MSYS and
Windows, but it didn't handle the `/c/path` case. This patch fixes the
issue.

Fixes #15297
Fixes #15250
Add tests.
auto merge of #16675 : luqmana/rust/pmu, r=alexcrichton

Fixes #16671.
Fix intptr_t on win64
Remove stage0 attributes.
Complete renaming of win32 to windows
auto merge of #16692 : vadimcn/rust/fix-win64, r=luqmana

This fixes fallout from 2dc2ac1e6b382b8c658071f61c3f95ae444dcc16, which did not take into account win64.
Add test for #10618 and #16382

Closes #10618
Closes #16382
libunicode: optimize char functions for ascii characters