* Remove System::Event type
* WIP: removing requirement for concrete Runtime impl for extras
* Use built in substrate types for constructing/signing the extrinsic
* Implement SignedExtension for copied types
* Fix remaining compilation errors
* Allow plugging in of predefined runtime types with blanket impls
* rustfmt
* Add CheckBlockGasLimit
* Construct DefaultExtrinsic in XtBuilder
* Derive Debug for extras
* Replace SignedExtension macro with explicit implementations
* Replace Lookup associated type with Address
* Move balances and contracts to main deps
* 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