Updated ResponseBranch for more informative method name
Created InvalidStateException class that will be thrown when, as the
name implies, state is invalid.
Update: Provided ResponseBranch implementation and testing class