Support DateTimeImmutable instances

Currently, passing a [`\DateTimeImmutable`](http://php.net/manual/en/class.datetimeimmutable.php) instance instead of a `\DateTime` will fail, as it explicitly tests for `instanceof \DateTime`. This changes it to test against [`\DateTimeInterface`](http://php.net/manual/en/class.datetimeinterface.php), of which both `\DateTime` and `\DateTimeImmutable` implement, allowing either to be provided.