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