WINDOWS: move user preferences to My Documents directory. close #4334
rename methods of min and max that do reductions to minimum and maximum

this is step 1 for #4235
fix #4487
Merge branch 'master' of github.com:JuliaLang/julia into jb/minmax
Makefile: Windows dep urls
with_env(key,val): temporarily set and restore an evironment value.

Use this to fix #4494 — older gits don't support merge --no-edit.
step 2 for #4235

make minimum and maximum use scalarmin and scalarmax, which are min
  and max but exclude arrays

remove isless for AbstractArray

add LexicographicOrdering and use it in sortrows and sortcols
currently LexicographicOrdering is implemented with cmp(), which does
  the right thing for arrays, but we might not want to keep it that way
Pkg.update: call Base.with_env (not an exported function yet)
Update Pkg1 to Pkg.generate in docs solves #4500
Merge pull request #4504 from bartolsthoorn/patch-1

Update Pkg1 to Pkg.generate in docs solves #4500
Merge pull request #4502 from magistere/master

Fix Matlab/Octave mandelbrot microbenchmark
update release notes for min/max changes
Merge branch 'master' of github.com:JuliaLang/julia into jb/minmax
fix #4509
fix #4506
Allow all integer types in permutation vector
Merge pull request #4512 from JuliaLang/anj/permute

Allow all integer types in permutation vector
warn: remove `depth` keyword, no backtraces; warn(err::Exception).

Since it's completely unclear what this does or how to use it, I'm
deleting this feature. When `depth=0` backtraces seem to show, while
when `depth=1` they don't or something like that. Now we just don't
ever show backtraces for warnings. This keyword didn't do anything
for the info function since we never print backtraces there.

Also added a warn(err::Exception) method that prints an error the
way it would look if allowed to kill the current task, but doesn't
actually kill the current task. This is useful if catch an error
and want to show it to the user but continue running.
string padding: cpad, fix lpad and rpad (use strwidth not length).

The cpad function center pads a string by making appropriate calls
to lpad and rpad. The lpad and rpad functions should have been
using the strwidth function to determine how many columns strings
take up, but before they were incorrectly using `length` instead.
Pkg.build: this is the long-awaited Pkg.fixup replacement.

Fundamentally, it's not really that different. Instead of trying to
topologically sort packages, I just install them in alphabetical
order and then use depth-first recursion in build to make sure that
dependencies are built before the things that depend on them. If
two packages depend on each other circularly, then one of them will
get build firts, which may not work; we may have to deal with that
at some point, but let's worry about that if and when it happens.

Philosophically, this change takes the approach that as far as the
package installation machinery is concerned, build failures aren't
really it's problem – it will run the build script for a package
when that package is installed or updated, but if the build script
fails, the package is still considered to be installed. A big, red
warning is printed for the user so that they know the package is
not likely to work, but the package is left installed so that they
can go into its directory and try to fix it. This approach seems
likely to make installing packages with binary dependencies a lot
less annoying.