Add Dates module to Base

Fixes #3524.

Cross-reference: #5328, quinnj/Dates.jl#6, quinnj/Datetime.jl#12.

Successor to #7285 PR because of a weird github merge bug.

There were a few tweaks to the code from the original PR, nothing major. Additional tests and docs! I'd especially appreciate feedback on the content and structure of the docs.