client/mmr: persisting gadget state across runs
Fixes#12780
* client/mmr: on init do canonicalization catch-up
* client/mmr: add more tests
* client/mmr: persist gadget progress in aux db
* client/mmr: add more tests
* client/mmr: replace async_std with tokio
* remove leftover comment
* address review comments
Signed-off-by: acatangiu <adrian@parity.io>