Refactoring and more work on parsing

Refactoring to change the model so that a Node is a general purpose
representation of all page types. It will aggregate front_matter,
markdown content sections and 'widgets' corresponding to either
questions, outcomes or start buttons.