Extending Dates Role's Vague String handling & Fixing #346

I've extended the handling in order to support the functionality required to fix https://github.com/duckduckgo/zeroclickinfo-goodies/issues/346

Looking at all of this now I'm not so sure I like the vague vs non-vague distinction so much.  Would there ever be a case where we can absolutely positively should only support one or the other?  Otherwise we can hide all of the complexity inside the role itself behind `date_regex()`, `parse_string_to_date()` and `parse_all_strings_to_date()`.