Refactor nodes

This moves some finders for elements (eg. `node.elements.find { |e| e.is_a?(Smartdown::Model::NextNodeRules) } `) down into the Node model as a step towards having this done at the parsing level.

Includes https://github.com/alphagov/smartdown/pull/50, please merge after

The current smart answer view code does not present users with the possibility of choosing "year". Can we make sure a story to add this gets added to the backlog? (to raise with content/user research first but I recall having a conversation that this is one of the requests raised in user research).