[lang] Improve invalid selector error (#561)

* [lang] Improve invalid selector message

* [lang] Improve span

* [lang] Return syn::Error instead of panicking

* Make clippy happy

* [lang] Reduce code dup with non_hex_err

* [lang] Rename fn

* [lang] Fix err functions

* [lang] Add comments

* [lang] Remove unnecessary lifetime
17 jobs for master in 22 minutes and 48 seconds (queued for 37 seconds)
Name Stage Failure
fuzz-tests Fuzz
No job log