Add the ability to install test dependencies and run tests to Pkg

`Pkg.test("PackageName")` will install a package's test dependencies
(marked with `@test` in the REQUIRES file) then run its tests. If the
tests fail or there is no run_tests.jl provided then an error is raised.
reorder sysimg to fix #5885
fix return type of BigInt conversions to Clong and Culong. should fix #6196
Pkg.clone: allow leading [^\/] for auto package name detection.

Closes #6141 and #6152.
make test a named argument in Reqs.parse
replace some ? with ifelse

add hex(::Char, ...) so Char doesn't need abs()

add conversions from Char to both Signed and Unsigned
Merge branch 'master' of github.com:JuliaLang/julia
Inplace reduction functions

Inplace reduction functions (including sum!, prod!, maximum!, minimum!, all!, and any!) have been within the Base for a while. This PR exports them with a modified interface that is safe & flexible.
add documentation for sum! and friends
add an entry to NEWS.md about the reduction functions that allow pre-allocated output
add the link to 6197 in news
Fix macro name for @sprintf errors

Also fix triggering condition for "format must be a plain static string"
error
use test/REQUIRE and test/runtests.jl as discussed in pull request
replace unbox warning with an assertion

this code is fine and the warning is not needed.
Merge pull request #6197 from lindahua/dh/inplacesum

Reduction functions with pre-allocated output storage.
remove jl_get_exception_str. fixes #6199

a better name for this function would be jl_cause_segfault().
Merge branch 'master' of github.com:JuliaLang/julia
Update package generation for changes in #6191
fix typos
Merge pull request #6206 from catawbasam/patch-3

fix typos