Update date parser to work with ranges

Also return our JSON-LD format instead of something intermediate.
Adapt period terminus model to earliest/latest year format
Zero-pad year values according to XMLSchema#gyear format

http://www.w3.org/TR/xmlschema11-2/#nt-yrFrag
Spell "millennium" correctly
Handle trailing spaces
Correctly handle leading "C.E."

Before, the c. was (understandably) getting eaten up as "circa"
Handle BP dates that include a C14 designation
Fix tests to use zero padding on returned years
Accept date label "present"
Parse BP dates with different bases than 1950
Change logic in date formatting to account for year 0

since 0 is falsy
Ordinal number words should be case-insensitive
Start adapting period form to handle ranges & expanded parser

Especially, don't worry so much about the date types parsed
Update parser tests

Most importantly, BP base should be 1950 by default
Use WorldCat JSON-LD resources instead of Turtle

The latter didn't have CORS enabled so we were going through a proxy on
my own domain. JSON-LD resources do right now, so we'll use them. It's a
pain to parse two different types of linked data, but actually not as
much of a pain as I'd thought!
Change "periodizations" to "period collections"
Handle sources that only have titles as part of another work
Improve handling earliest/latest endpoints; use Tablesort
Fix field binding for new periodizations in edit form
Fix period validation logic to account for earliest/latest termini