Added the high-level Visible interface, which applies to questions and
sections alike.
Removed QuestionCompletionListener.
Pull 'isVisible' into super-interface.
Added the Findbugs JAR for @Nonnull and @Nullable.
Removed hasNext and hasPrevious, and next and previous methods from
Section.
Added prepareSection hook.
Changed how SurveyDriver traverses questions in the survey; treats them
as a tree of section nodes and question leaves.
Added Mockito as a test dependency.
Added unit test for SurveyDriver.
Added the SurveyTerminationListener for when a survey ends.
Incorporated listener into SurveyDriver.
Added Javadocs to class.
Added the VisiblePredicate class to allow implementations of Visible to
delegate checks to another type at runtime.
Added a different take on the StaticSection.
Allow implementations of SurveyBlackboard to answer questions. This
might not belong to this type, but for now there isn't a better place
for it.
Use the simpler VisiblePredicate type instead of Guava's Predicate<T>
Added sample QuestionAsker, SurveyBlackboard, SurveyTerminationListener,
and support mechanisms to illustrate a text-based survey.