Add a multidimensional (cartesian) iterator

Closes #1917, closes #6437
Make the output of setindex! for SharedArrays consistent with other implementations
Make type-construction more modular

See https://github.com/JuliaLang/julia/pull/8432#issuecomment-62536295
Rework iteration using stagedfunctions
fix type inference for iteration with stagedfunction
Move AbstractArray traits earlier to avoid overwriting `start`

This prevents a build warning
Parse ÷= as updating operator
Revert "Fix of parseintperf"

This reverts commit a0373829ded4e5639c11cbb3e6d8e1f3e066611f.

Ref: #8847
Add volatile keyword to mandelperf in perf.f90

Ref: #4821
Add missing semicolon to Java benchmark
Fix dictionary syntax change in perf/spell/perf.jl
Removing Unicode from merge doc, fixes #9012

A lot less charming, but more pleasing for LaTeX.
Merge pull request #9013 from ninjin/nin/doc_unicode

Removing Unicode from merge doc, fixes #9012
Merge pull request #9009 from eschnett/diveq

Parse ÷= as updating operator
Avoid confusion with start(::Tuple) iteration
doc: further explain fill/fill!
Fix OSX permissions
Merge pull request #9018 from JuliaLang/sf/osxperms

Fix OSX permissions
rename Uint -> UInt in contrib files for syntax highlighting
Merge pull request #8432 from JuliaLang/teh/cartesian_iteration

Efficient cartesian iteration (new version of #6437)