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.
make test a named argument in Reqs.parse
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
Update docs and clean up test dependencies after running tests

It turns out that doing a Pkg.resolve() after a Pkg.test() cleans up the
test dependencies. May aswell do this at the end of test() as it is
going to happen at somepoint anyway.

Also updated the stdlib docs to cover Pkg.test()
Make sure tests will work after #6205

Pkg.generate() will start creating a test/runtests.jl so need the tests
to cope with that
replace tabs with spaces
remove using Base.Test
move clean-up resolve() into test!
add hist!, which accepts a pre-allocated array to store the output
add hist2d! that accepts a pre-allocated result array
add documentation for hist! and hist2d!
deprecate infs and nans

these functions are silly. we could also have fill, ones, and zeros
return BitArrys for Bool elements, and then we wouldn't need trues
and falses.
Merge pull request #6217 from lindahua/dh/hist2

Add functions hist! and hist2d!
Fix #5459

This combines the .o emission code from #5787 with some error checking code
for cpuid mismatch. When releasing a binary, set JULIA_CPU_TARGET to "core2"
(we discussed that this is a reasonable minimum) in your Make.user and
everything should work just fine.
Add Please delete or regenerate sys.{so,dll,dylib}'' to all the error messages
Move -D_FILE_OFFSET_BITS back to CFLAGS

These should really go in CPPFLAGS, but apparently on mingw, there's defines
in the stdio headers that rename the function (rather than doing it on a symbol lelve), so we can't use this when we include LLVM headers. Anyway, as long as
we don't call the IO functions from C++ we should be fine.
Add newlines to error messages
cpuid -> jl_cpuid
introduce AbstractSparseArray. Close #6213.