feat(compile): randomize unspendable internal key for taproot descriptor
Instead of using a fixed NUMS key as the internal key for taproot
descriptors, generate a randomized unspendable key (H + rG) for each
compilation. This improves privacy by preventing observers from
determining whether key path spending is disabled.
The randomness factor `r` is included in the output so the user can
verify that the internal key is derived from the NUMS point.
Also applies `shorten()` globally in pretty mode and uses `?` operator
via dedicated error variants instead of `map_err`.
Tests verify descriptor structure and `r` field uniqueness across
randomized compilations.