Support for conditionals in outcomes

Adds support for conditional blocks in outcomes. 

The syntax is:

```markdown
$IF pred?

Text if true

more text if you like

$ENDIF
```

You can also have an else clause:

```markdown
$IF pred?

Text if true

$ELSE

Text if false

$ENDIF
```

It's required to have a blank line between each if statement and the next paragraph of text, in other words this would be **invalid**:

```markdown
$IF pred?
Text if true
$ENDIF
```

If you call `Engine#process` you will get a state object back. If you then want to evaluate the node in that state to resolve conditionals you must call `Engine#evaluate_node(state)` which will evaluate the `current_node` as defined by the `state`. I had considered making `Engine#process` return a tuple of `(state, evaluated_node)`, but not sure if you would want to always evaluate the node. Thoughts welcome.

re: version numbering, I think we're still in the 'initial development' 0.x phase. Obviously I am trying to keep breaking/incompatible changes to a minimum, but yes good point about the version number bump (but at this stage I think it would be to 0.0.3?). We had previously had a policy of doing the version bump on the master branch after merging but there was some discussion a little while back about doing it in the branch. I'll check.

See your point about the wrapper, I have held off from that because I wasn't totally clear what shape it should be and expected it to be informed by what you needed to do in the frontend app. I'll try to sketch something out and make a PR.