fix #8050

(cherry picked from commit 364cd0cbca232db058c25b7094d35dcd4d38e26e)
Separate test cholfact(x::Number) for cherrypicking, as discussed in #9326

(cherry picked from commit 1abe29e739c066a60709ad190f254ee02c13f4d4)
0.3 specific fix for cholfact(x::Number), ref #9326
Backport #9132 for randn performance.

Separate out the unlikely branch in randn() into its own function
and provide a fast path for the common case.
Support building of system image in binary builds
This commit adds a few new pieces of functionality:

* The `contrib/build_sysimg.jl` script which builds a new system image.  This method can save the system image wherever the user desires, e.g. it could be stored in `~/.julia`, to allow for per-user system images each customized with packages in their own `userimg.jl`.  Or on a restricted system, this allows for creation of a system image without root access.

* The removal of compile-time `JULIA_CPU_TARGET`, in favor of runtime `--cpu-target`/`-C` command-line flags which default to `"native"` but can be set to `"native"`, `"i386"`, `"core2"` or any other LLVM cpu target.  This allows the creation of a system image targeting user-supplied cpu features, e.g. `cd base; ../julia -C i386 --build /tmp/sys_i386 sysimg.jl`.

* I implemented runtime selection of the cpu target by adding a new member to the `jl_compileropts_t` structure called `cpu_target`.

* Because all julia executables are now created equal, (rather than before where a julia executable needed to have the same `JULIA_CPU_TARGET` set internally as the system image had when it was built) we need to know what CPU feature set the system image is targeting before we initialize code generation.  So a new function `jl_get_system_image_cpu_target()` is exported, which does exactly what it sounds like.

* I added newlines to the end of a few error messages.

* I found an old parser option `-T` which hadn't been removed yet, so I took the opportunity to do so.

* Documentation on this has been added to doc/devdocs/sysimg.rst

Forgot missing colon
avoid the stack-smasher strcpy-alloca and minor cleanup

(cherry picked from commit 605c36323486581f4a3016b8a165d6e28e9157f4)

Conflicts:
	src/dump.c
	src/task.c
Revert "re-enable sys.dll on win32"

This reverts commit 06a7bb99c8f48f31dda2d5b5582f7667ca72515a.

Backtraces with sys.dll are still missing file and line number information
Windows fixes for sys.ji location and using .ji in messages instead of Sys.dlext

Fix WinRPM binutils location

change some messages from println() to info()
Refactor running the linker into a separate function

modify docs to reflect different paths on Windows
use winrpm gcc instead of binutils to link sys.dll on windows

use Base.samefile for file path comparison

add instructions to Pkg.add("WinRPM") too

use -shared also on Windows, along with '-Wl,' only on Windows
add .ji extension so inputs to samefile both exist

Correct .rst on sysimg

Added needed newline.
(cherry picked from commit a16981d1a81ca60d26cc4bef6241231022a6d22a)

Conflicts:
	doc/devdocs/sysimg.rst
Merge pull request #9376 from JuliaLang/sf/build_sysimg3.0

Support building of system image in binary builds
rst fixes
need a second $ for git status in release-candidate
Use a larger stack for PCRE's JIT. Fixes #8278.

(cherry picked from commit ce3a2b585aa370ffd16effd6e88232b42e66e588)

Ref #8388
Update helpdb.jl
added docs for contains function

(cherry picked from commit 399550e459b67e3c9ee0e911ebd3339dad92e749)
Explain error in `contains` doc

(cherry picked from commit 8a8e840b2be710705cac0ac467564739f1eb0e92)
Correcting a typo.

Should be `'o'` instead of `'0'`.
(cherry picked from commit 9a3c68f32ed45fd7a175268c77e73610cf1210c2)
ref PR #9460
Tag v0.3.4