Work around memory-aliasing in descriptor ParsePubkey
Summary:
Having a.size()==0 and then access a[0] is undefined behavior.
Add Span::empty() and use it in script/descriptor
This is a backport of core#19508
Test Plan: ninja all check-all
Reviewers: #bitcoin_abc, majcosta
Reviewed By: #bitcoin_abc, majcosta
Differential Revision: https://reviews.bitcoinabc.org/D9714