Parsing of conditional clause
Ensure markdown_blocks always produces array

this trick of using repeat(1,1) matches one repetition of a clause but
causes the match data produced to always be an array containing one
element. This avoids the wierd edge-case that when there is a single
markdown block you would get the markdown block alone, but when there
are multiple you would get an array. Instead you always get an array.
Add Conditional model and transform
Add model builder helper for conditionals
Add NodePresenter for evaluating conditionals

also added Engine#evaluate_node
Merge pull request #12 from alphagov/conditional

Support for conditionals in outcomes
Support optional question tag for multiple choice questions

The syntax is:

```
[choice: question_name]
* opt1: Opt label 1
* opt2: Opt label 2
```

this will create a multiple choice question with the given name. The
label is optional and if unspecified the question assumes the name of
the node. Written as:

```
* opt1: Opt label 1
* opt2: Opt label 2
```
Make multiple choice question tag required

We felt that it would be more confusing to let it be optional
Update student finance forms example

[choice: ] tag is now required
Update check-uk-visa example

choice tag now required