cdefs(9): encourage nodiscard over result_use_check
nodiscard is closer to (and sometimes expands to) nodiscard from
C23 and C++17 so prefer it to the homegrown result_use_check.
When nodiscard does expand to nodiscard it must appear entierly
before the function declaration (or between the function name
and argument list) so relocate as appropriate. This differs from
attribute((warn_unused_result)) used by result_use_check which
is more flexible.
Reviewed by: imp, markj, emaste
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D57881