Fuzzy-finder fallback for tsk export
`tsk export` with no -t/-T/-r drops into fzf showing every task in
the active namespace as `tsk-N\ttitle`; the picked id flows through
the existing export path.
Implementation reuses the shared TaskId clap struct rather than
adding bespoke per-command fields:
- TaskId.relative_id is now Option<u32> so "no flag passed at all"
is distinguishable from "explicitly -r 0".
- New TaskId::resolve_or_pick(ws) drops into fzf when nothing was
given. Existing commands that prefer "top of stack" silently keep
that behavior via TaskId → TaskIdentifier (relative_id defaults to 0
on conversion).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>