Fix #6372

This adds the package to REQUIRE on Pkg.clone() if it exists in
METADATA. This means that calling Pkg.clone() on a repo that's on an
old tag will result in the package getting updated to the latest
release, but that seemed preferable to making Pkg.clone() on a package
that's on a tag result in a pinned package.
Added capability to process splatted arguments and moved the check
of argument number compatibiilty from macro expansion time to runtime.
Modified to differentiate situations when splatting does and does not
occur and checks argument cardinality at macro expansion time if not.
Further optimized based on lack of splatting
Evaluate and print parts of comparisons in `@test`.
Adds a resultexpr field to Failure and Success.
Add Dates module to Base
Added for spatted printf tests
Update Package Development documentation
more explanation of abstract types

Several points concerning abstract types eluded me when I first read the manual; I have written additional paragraphs to elucidate these points.
more explanation of immutable

Some aspects of 'immutable' escaped me when I first read the manual and were clarified by Stefan Karpinski.  II think other new users might benefit from this clarification, so I put some additional paragraphs in the manual.
added a paragraph about elementwise

As far as I can see, elementwise operators are never introduced or defined in the manual, so I added a paragraph to introduce and define them.
Merge branch 'master' of https://github.com/JuliaLang/julia into jq/dates
Add missing millisecond to month/year-TimeType arithmetic
Cleanup some definitions for Period types. Removes redundants and adds a few math operations
Add internal conversion methods to Day and Millisecond. This builds a foundation for better range support
Consolidate FixedPeriod-TimeType arithmetic by using new conversion methods. Also give better typed results with vectorized arithmetic operations
Make now() return a DateTime corresponding to the user's timezone (set on their machine)
Rename isleap to isleapyear and remove some definitions that will be moved to types.jl
Update comments and remove unneccesary inner constructors in Date/DateTime
Move definitions of daysinmonth and isleapyear to types.jl from query.jl to be used in validating inputs