New Ensuring/Require/Assert trees
New Ensuring/Require/Assert trees

- Ensurings/Require are now proper purescala trees
- Introduce Assert as a tree
- Simplify tactics to support arbitrary asserts/errors/inner ensurings
- New phase to inject assertions for unsafe calls (array/map access)
- Refactor Default and Induction tactic

epfl-lara/stainless,epfl-lara/stainless,epfl-lara/stainless,epfl-lara/stainless