Add proc. macro documentation (#504)

* [lang] add doc to ink_lang::test proc. macro

* [lang] add doc to ink_lang::trait_definition proc. macro

* [examples] add whitespace to separate trait methods

* [env] make it possible to use a primitive [u8; 32] as hash type

* [lang] add doc-comment to #[ink::contract] proc. macro

* [lang] add additional notes to #[ink::contract] docs

* [lang] document #[ink::contract] selector controlling

* [lang] add documentation for #[ink::contract] event definition and emitting

* [lang] add doc section explaining env interaction via #[ink::contract]

Explains Self::env() and self.env() interations.

* [ci] add doc generation for ink_lang_ir and ink_lang_codegen

* [lang/macro] fix docs

Co-authored-by: Michael Müller <mich@elmueller.net>

* [lang/macro] fix typo

Co-authored-by: Michael Müller <mich@elmueller.net>

* [ink/macro] fix typo

Co-authored-by: Michael Müller <mich@elmueller.net>

* [lang/macro] improve docs

Co-authored-by: Andrew Jones <ascjones@gmail.com>

* [lang/macro] fix typo

Co-authored-by: Andrew Jones <ascjones@gmail.com>

* [lang/macro] fix typo

Co-authored-by: Andrew Jones <ascjones@gmail.com>

* [lang/macro] fix typo

Co-authored-by: Andrew Jones <ascjones@gmail.com>

* [env] implement Clear for Hash in terms of Clear for [u8; 32]

* [storage] apply better formatting

* [storage] make clearer that we use DynamicAllocator in test

* [lang/macro] improve docs

Co-authored-by: Andrew Jones <ascjones@gmail.com>

* [lang/macro] fix typo

Co-authored-by: Andrew Jones <ascjones@gmail.com>

* [lang/macro] add note about payable constructors

* [lang/macro] fix payable messages example

* [lang/macro] add note about disabling dynamic storage allocator

* [lang/macro] improve section about compile_as_dependency

* [lang/macro] clear up EnvTypes SCALE encoding

* [lang/macro] fix docs

* [lang/macro] fix typo

Co-authored-by: Andrew Jones <ascjones@gmail.com>

Co-authored-by: Michael Müller <mich@elmueller.net>
Co-authored-by: Andrew Jones <ascjones@gmail.com>
16 jobs for master in 8 minutes and 33 seconds (queued for 4 seconds)