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
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>
librustc: Properly tag upvars in proc's to stop misleading unused_mut warnings.
auto merge of #16659 : brson/rust/slowparse, r=alexcrichton

Note that this contains a 9.5MB test file, but it should compress thoroughly.
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.
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.
Guide: Make add_three_times_four() public