Refactor body methods to share markdown logic

Support devolved body on questions too
refactoring to make element detection easier
Split out the stateless representation of a flow from state for a set of responsaes

* New flow model, which holds the Smartdown package, engine, etc
* Make state only responsible for the stateful aspects of a flow, current node, responses
Move started/finished state out of presneter and in to state
Add some inspect methods for easier debugging