Add flow auditor

the flow auditor can check which flows dont declare their possible next nodes
by parsing the source code of the flows.
Add option to declare permitted next nodes
Add #next_node_if for conditional next nodes

This will allow us to have a deterministic list of possible next nodes
in most circumstances, which will make it easier to visualize the flows
in a diagram automatically.

The #next_node_if method can take either a block or a list of predicates
(or both).
Allow conditional next_node clauses by nesting conditions

The on_condition() block allows you to define a scope within which the
given predicates must be satisfied. It modifies all #next_node and
next_node_if invocations

Example:

```
on_condition(->(r) {r == 'tourism'}) do
  next_node_if(:outcome_visit_waiver) { %w(oman qatar united-arab-emirates).include?(passport_country) }
  next_node_if(:outcome_taiwan_exception) { %w(taiwan).include?(passport_country) }
  next_node_if(:outcome_school_n) do
    country_group_non_visa_national.include?(passport_country) or country_group_ukot.include?(passport_country))
  end
  next_node(:outcome_general_y)
end
```
Add explicit validate method
Add facility for calculating intermediate for next_node
Add #response_is_one_of predicate
Add #response_has_all_of predicate
Add country_in convenience predicate
Add responded_with predicate
Use next_node as fallback in multiple choice question

Instead of the next_node command overriding the other calculations, use
it as a fallback if no other match is found.

Only one flow (the minimum_wage.rb shared logic) relied on the original
overriding behaviour. I've updated that to work with the new semantics
of next_node being a fallback.

I have verified that no other flows rely upon this behaviour (by writing
a script which parses the flow source code using the ruby parser).
Change check-uk-visa to use next_node_if
Convert to use #next_node_if
Remove commented out cruft
Add explanation of purpose of the flow auditor
Merge pull request #884 from alphagov/static-next-node-step1

Ability to draw automatic flow charts - step1