Merge branch 'state_inv' into 'master'
State invariants in WP and the dead of heap_ctx. This merge request changes the WP construction so that it takes _state interpretation_ as its parameter (part of the `irisG` type class), instead of building in the authoritative ownership of the entire state. When instantiating WP with a concrete language, one can choose the state interpretation. For example, for `heap_lang` we directly use `auth (gmap loc (frac * dec_agree val))`, and avoid the indirection through an invariant managing ownership of the entire state. As a result, we no longer have to carry around `heap_ctx`. See merge request !25