**Relax type-checking of inputs with defaults**
WDL inputs declared with default initializers, `input { T x = :default: }`, can now be called with optional values *whether or not* their declared type carries the `?` quantifier.
<details>
<summary>Implications & example</summary>
When called with `None`, the default applies if the declaration lacks the `?` quantifier. This change simplifies passing optional overrides through from workflow to task, while the task internally defines the appropriate default:<br/>
wdl
workflow w {
input {
String? s_override
}
call t { input: s = s_override }
}
task t {
input {
String s = "some default"
}
...
}
However, if caller expressly supplies `None` for an input that *is* declared optional, `String? s = "some default"`, the WDL specification does not yet explicate whether `s` should take `None` or the default in this case. For now our implementation has it take `None`, but `miniwdl check` also flags the ambiguity with `UnnecessaryQuantifier`. See ongoing discussion: https://github.com/openwdl/wdl/pull/464
The newly relaxed rule only applies for task/workflow call inputs; elsewhere, it remains necessary to use `select_first()` or `select_all()` to coerce an optional value to a non-optional type.
</details>
**Fix bug causing runs with `--no-cache` to still use stale cached download, and other rare race conditions**
**Usability improvements for logs and error messages**