Add SharedArray utilities, expand documentation, add a few tests
Concretely specify the type of dims in SubArray

This allows the type of `size(S::SubArray)` to be inferred.
Fix nfilled for AbstractArray, clarify docs, and add test
remove Scheduler
disable a test of source_path() which was invalidated by removing the Scheduler
restore parent task reference to Tasks
fix remaining issues from removing Scheduler
since jl_task_t->last can now be null (if the thread hasn't started), let the gc know
remove unnecessary changes
more cleanup of Scheduler removal change
Add return-type annotation to ngenerate/Cartesian method cache
Enhance ncall so only the last argument is expanded on itersym

This allows one to pass additional "pre" arguments
Add @nsplat, a convenience for generating explicit versions of functions with a splatted argument
Test inference of returned types
Implement copy! using Cartesian

Fixes #5411
Bump CARTESIAN_DIMS to 4
base/gmp.jl: make ndigits(::BitInt) return an Int
make isinteractive() available while loading .juliarc.jl
Remove deprecated add! in the stdlib overview doc

See with current master. push! works fine like with any other collection.

```
julia> a = Set()
Set{Any}()

julia> add!(a, 1)
WARNING: add!(s::Set,x) is deprecated, use push!(s,x) instead.
 in add! at deprecated.jl:19
Set{Any}(1)
```
Fix erroneous inserted comma