Add some basic test infrastructure
Whitespace
Test coverage of happy path
Pending tests for failure cases
Add failing tests for handling re-prompts
Execute state transitions noisily

If they fail, throw exceptions. We shouldn't be failing here, and if we do, we want to know all about it.
Fix reprompt behaviour
Move the IVR's state machine into the controller

Clean up some unused APIs as a result
Remove unused method
Rename spec to match implementation
Remove unnecessary argument
Add todos for missing tests
Turn on logging in specs
Handle stop results
Hangup results should terminate the controller flow
Test lambda prompt evaluation

Ensure that they are re-evaluated each time, rather than up-front, and that they are bound to the controller instance.
Demonstrate that controller state is being shared between separate controllers
Better Travis build
Run specs in random order to avoid hiding bugs
Avoid sharing state between separate controllers