Fix #9103, implementing `cd -` in REPL shell mode
Use language: julia in default .travis.yml

and add the os: section for mac testing (has to be explicitly enabled
by sending an email to support@travis-ci.com, see
http://docs.travis-ci.com/user/multi-os )
add git fetch --unshallow in commented out script section

add explanatory comment
repl_cmd() prints to the repl's output stream

(not STDOUT)
tests for repl shell mode cd feature
fix long string warning in repl shell mode tests
Fail fast on AppVeyor for repeated commits to same PR

Use AppVeyor's API!

reuse cached version of jq instead of downloading every time

make slightly more robust to network problems
unbreak win64 COPY_STACK
fix #9339
Fix type inference issue in permutedims!
fix stack-smashing protector usage across platforms by introducing a HAVE_SSP define flag
improve help for `isnull` and simplify Nullable definitions a bit
remove an unnecessary `promote_type` definition

this also gives a better no-method error for invalid 2-argument calls
Merge branch 'master' of github.com:JuliaLang/julia
fix d3d6291f38510d2aadfeab3aee74ee7745c26872 oops
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
unbreak win64 and linux32 builds
Merge pull request #8074 from JuliaLang/sf/build_sysimg2

Support building of system image in binary builds
unbreak win32 and win64 builds
unbreak win64 build