* Introduce OpaqueEvent
* Look up event by module and variant
* Index events by module
* Get events by module
* Dynamically decode events
* Decode System events and EventRecord topics
* Use type sizes to decode raw events
* Remove unused imports
* rustfmt
* Unify error types, fix some compiler errors
* Make dynamic event decoding work
- fix compilation errors
- skip modules with no events when indexing
- preallocate vec for raw event data
* Remove printlns, replace where required with log
* Remove unused import
* Check missing type sizes
* Ignore unknown event arg type sizes
* Decode concrete System events, assumes every Runtime has the module
* Reorganise usings
* pub use some types
* Code docs
* Export Error
* Error Display impls
* Format code
* Refactor: allow submit and submit_and_watch, separate module builders
* Convert Balances, and use generic ModuleCalls
* Convert System, and use generic ModuleCalls
* Extract common calls to set_call
* rustfmt
* Test contract put_code with valid contract
* Patch jsonrpc client dependency for bugfix
* Handle result from call builder inside submit
* Use patched version of jsonrpc
* Lift module calls to Error
* jsonrpc 13.0
* Remove unused static constraints