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
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
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)
Add note on Fortran name-mangling, fixes #9022
Merge pull request #9019 from simonbyrne/uint-contrib

rename Uint -> UInt in contrib files for syntax highlighting
greatly improve performance of closed variables

- avoid undefined var check for closed variables that come from arguments
  (detectable by the fact that the variables are not arguments inside the
  closure, but are never assigned to either)

- use tbaa_const for loads from closure environments. these are never
  mutated; mutable bindings use boxes.
Create appveyor.yml