Basic graph visualisation

![screen shot 2014-05-19 at 16 56 54](https://cloud.githubusercontent.com/assets/61065/3016565/9c923422-df6f-11e3-8c5d-d1320ae725a9.png)

This is a prototype graph visualisation. It can be accessed by appending `/visualise` to the smart answer base url (e.g. `/check-uk-visa/visualise`).

Meaningful labels on node transitions really help to make the visualisation easy to read and understand. Therefore I've gone to some length to make it straightforward to extract meaningful labels from the flow definitions. This is the purpose of the **predicate objects** which support meaningful labels whilst still being executable by the actual smart answer flow. 

Existing smart answers will use these predicate objects if they were previously using predicate helpers (e.g. `responded_with`). In other cases some refactoring may be needed.

## Questions/thoughts

- would we be happy to make the flowcharts semi-public? I don't propose to link to them at present, but the url would be guessable by someone with technical knowledge
- graphs can be layed out 'top-to-bottom' or 'left-to-right'. It's hard to predict which of these layouts will work best for a given flow, so it might be good to offer a button to toggle the layout.