Implement crypto hash functions supported by contracts pallet (#360)

* [core] implement crypto hash functions supported by contracts pallet

* [core] fix clippy warnings

* [core] add unit tests for new crypto hashes

* [core] refactor unit tests for crypto hashes

* [core] make hash functions return their hash through output buffer

* [core] update docs of hash APIs

* [core] put hash API in its own sub-module of env

* [core] fix on-chain hash implementations

* [core] apply rustfmt
15 jobs for master in 7 minutes and 11 seconds (queued for 2 seconds)
Status Job ID Name Coverage
  Check
passed #426564
linux-docker
check-std

00:01:19

passed #426565
linux-docker
check-wasm

00:01:30

 
  Workspace
passed #426566
linux-docker
build-std

00:01:49

passed #426567
linux-docker
build-wasm

00:02:09

passed #426569
linux-docker
clippy-std

00:01:24

passed #426570
linux-docker
clippy-wasm

00:01:40

passed #426571
linux-docker
fmt

00:00:15

passed #426568
linux-docker
test

00:02:46

 
  Examples
passed #426574
linux-docker
examples-clippy-std

00:01:08

passed #426575
linux-docker
examples-clippy-wasm

00:01:05

passed #426576
linux-docker
examples-contract-build

00:00:35

passed #426573
linux-docker
examples-fmt

00:00:14

passed #426577
linux-docker
examples-generate-metadata

00:01:54

passed #426572
linux-docker
examples-test

00:01:20

 
  Publish
passed #426578
linux-docker
publish-docs

00:01:08