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.