Add a relaxed datetime parser. This datetime parser functions by using `chrono`s
own parsing utilities and a try/succeed approach to parsing.
This implementation of the datetime parser has some drawbacks and some
positives. On the positive side:
- it was easy to implement
- it is easy to add more datetime formats to
In order to add additionally supported formats, a developer can add the
required format string to the `format` mod in `parse_datetime.rs`, and
then add it as a potential format to the relevant `fmts` vec.
On the negative:
- It is not easily customiseable beyond the supported `chrono` parsing
formats. E.g., `chrono` does not currently support parsing offsets
without trailing zeros. `from_str("UTC+1")` should return a valid response
but `chrono` fails to parse this.
- Because it is an attempt driven parser, it is likely not that
performant. I have not done any performance testing as part of this
change, but I would expect a custom parser to perform much better.