Implement selector_id!, selector_bytes! and blake2x256! macros (#947)

* add selector_id! and selector_bytes! proc macros

* implement blake2x256! macro

* re-export blake2x256! macro from ink_lang crate

* apply rustfmt

* add BLAKE2b to hunspell dictionary

* add UI tests for blake2x256! macro

* improve span for non-literal inputs to blake2x256! macro

* add non-literal input failure UI test to blake2x256! macro

* improve error span for non-literal selector_{id,bytes}! macro inputs

* rename UI test blake2x256 -> blake2x256_macro

* rename UI test

* add UI tests for selector_id! proc. macro

* fix UI test

* fix UI test expectation

* add UI tests for seletor_bytes! macro

* make flaky and broken codecov CI happy again ...
22 jobs for master in 9 minutes and 22 seconds (queued for 7 seconds)
Status Job ID Name Coverage
  Check
passed #1158398
linux-docker
check-std

00:02:47

passed #1158399
linux-docker
check-wasm

00:02:37

 
  Workspace
passed #1158400
linux-docker
build-std

00:03:02

passed #1158401
linux-docker
build-wasm

00:01:48

failed #1158406
linux-docker
clippy-std

00:01:16

failed #1158407
linux-docker
clippy-wasm

00:01:22

passed #1158405
linux-docker
codecov

00:06:26

passed #1158403
linux-docker
docs

00:02:07

passed #1158408
linux-docker
fmt

00:01:35

passed #1158404
linux-docker
spellcheck

00:00:12

passed #1158402
linux-docker
test

00:04:02

 
  Examples
skipped #1158412
linux-docker
examples-clippy-std
skipped #1158413
linux-docker
examples-clippy-wasm
skipped #1158414
linux-docker
examples-contract-build
skipped #1158415
linux-docker
examples-contract-build-delegator
skipped #1158416
linux-docker
examples-docs
skipped #1158411
linux-docker
examples-fmt
skipped #1158409
linux-docker
examples-test
skipped #1158410
linux-docker
examples-test-experimental-engine
 
  Ink Waterfall
skipped #1158417
kubernetes-parity-build allowed to fail
ink-waterfall
 
  Fuzz
skipped #1158418
linux-docker
fuzz-tests
 
  Publish
passed #1158419
kubernetes-parity-build
publish-docs

00:00:32

 
Name Stage Failure
failed
clippy-std Workspace

error: could not compile `ink_lang_ir` due to previous error

Caused by:
process didn't exit successfully: `sccache /usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/clippy-driver rustc --crate-name ink_lang_ir --edition=2018 crates/lang/ir/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata -C embed-bitcode=no -C debuginfo=2 --cfg 'feature="std"' -C metadata=e175e6cd3d1000d2 -C extra-filename=-e175e6cd3d1000d2 --out-dir /ci-cache/ink/targets/master/clippy-std/debug/deps -L dependency=/ci-cache/ink/targets/master/clippy-std/debug/deps --extern blake2=/ci-cache/ink/targets/master/clippy-std/debug/deps/libblake2-b2668ee4aa11d2ca.rmeta --extern either=/ci-cache/ink/targets/master/clippy-std/debug/deps/libeither-6623be7023c5be24.rmeta --extern itertools=/ci-cache/ink/targets/master/clippy-std/debug/deps/libitertools-c438e7a09360aec8.rmeta --extern proc_macro2=/ci-cache/ink/targets/master/clippy-std/debug/deps/libproc_macro2-a068cb2050102f51.rmeta --extern quote=/ci-cache/ink/targets/master/clippy-std/debug/deps/libquote-f84f6e77db34e5e8.rmeta --extern syn=/ci-cache/ink/targets/master/clippy-std/debug/deps/libsyn-fca87491d873bc4b.rmeta` (exit status: 1)
warning: build failed, waiting for other jobs to finish...
error: build failed
Cleaning up file based variables
ERROR: Job failed: exit code 1
failed
clippy-wasm Workspace
    = note: `-D clippy::needless-borrow` implied by `-D warnings`
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

error: could not compile `ink_env` due to previous error

Caused by:
process didn't exit successfully: `sccache /usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/clippy-driver rustc --crate-name ink_env --edition=2018 crates/env/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata -C embed-bitcode=no -C debuginfo=2 -C metadata=34d8f8f4e431ea74 -C extra-filename=-34d8f8f4e431ea74 --out-dir /ci-cache/ink/targets/master/clippy-wasm/wasm32-unknown-unknown/debug/deps --target wasm32-unknown-unknown -L dependency=/ci-cache/ink/targets/master/clippy-wasm/wasm32-unknown-unknown/debug/deps -L dependency=/ci-cache/ink/targets/master/clippy-wasm/debug/deps --extern arrayref=/ci-cache/ink/targets/master/clippy-wasm/wasm32-unknown-unknown/debug/deps/libarrayref-7ca543c11df82a23.rmeta --extern cfg_if=/ci-cache/ink/targets/master/clippy-wasm/wasm32-unknown-unknown/debug/deps/libcfg_if-152302b13a9219ee.rmeta --extern derive_more=/ci-cache/ink/targets/master/clippy-wasm/debug/deps/libderive_more-91476236bf9ec609.so --extern ink_allocator=/ci-cache/ink/targets/master/clippy-wasm/wasm32-unknown-unknown/debug/deps/libink_allocator-aba6fd4e74807261.rmeta --extern ink_prelude=/ci-cache/ink/targets/master/clippy-wasm/wasm32-unknown-unknown/debug/deps/libink_prelude-60058bf9a6a59b03.rmeta --extern ink_primitives=/ci-cache/ink/targets/master/clippy-wasm/wasm32-unknown-unknown/debug/deps/libink_primitives-a81ec0b61be9c970.rmeta --extern num_traits=/ci-cache/ink/targets/master/clippy-wasm/wasm32-unknown-unknown/debug/deps/libnum_traits-6109f0b5c882ae0e.rmeta --extern scale=/ci-cache/ink/targets/master/clippy-wasm/wasm32-unknown-unknown/debug/deps/libparity_scale_codec-75bb298125691ec0.rmeta --extern paste=/ci-cache/ink/targets/master/clippy-wasm/debug/deps/libpaste-1d007800db85bb25.so --extern sp_arithmetic=/ci-cache/ink/targets/master/clippy-wasm/wasm32-unknown-unknown/debug/deps/libsp_arithmetic-941daf1770d2c4dc.rmeta --extern static_assertions=/ci-cache/ink/targets/master/clippy-wasm/wasm32-unknown-unknown/debug/deps/libstatic_assertions-a8388fa09641602e.rmeta` (exit status: 1)
Cleaning up file based variables
ERROR: Job failed: exit code 1