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
added more constructors for v4
changed String to AbstractString for 0.4
streamlining and suggestions per discussion
IPv4(Array) -> Array(IPv4)
switch to map() to preserve concrete type
repl_cmd() prints to the repl's output stream

(not STDOUT)
tests for repl shell mode cd feature
commenting out IPv4(Vector) -> Vector(IPv4) until a decision can be made
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
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
additional convert method for Nullable
improve codegen for variables that are assigned but never used. (ref #9343)

this builds and passes tests with LLVM assertions, but we should be
on the lookout for regressions here.