a custom type of errors for unsatisfied input dependencies
we -> you
condition first, message second
factor out stop() code to a separate function
use the classes of the error condition as names of CSS classes in the output
filter out some common error classes
use shiny-output-error as the _prefix_ for CSS classes of error messages
add a function validateCondition() to avoid ambiguity

two advantages:

1. we no longer need to worry about input$foo being a list;
2. users have to explicitly call validateCondition() when they want error messages, so we know when to silently stop;
rewrite the lapply()/vapply() with a plain dumb for-loop
roxygenize
the logic of the last commit was not correct: we should not stop immediately on a non-condition object; instead, we still need to collect all messages on all conditions before we stop
Refactoring/renaming of validation

- validateInput renamed to validate
- validateCondition renamed to need
- Removed ability to provide "bare" conditions. It is
  still possible to fail validation silently by passing
  FALSE as the second argument to need()
- Rather than using a two-element list to convey results,
  use a single result protocol; NULL is success, FALSE is
  silent failure, string is failure with message
- Tweak "missing input" semantics, add tests
Validation refactoring

- Move validation logic from shinywrappers.R to utils.R
- Don't coerce validation results; fail if not FALSE, NULL, or character
- Reverse order of stopWithCondition args
Merge pull request #1 from jcheng5/feature/unsatisfied-input

Refactoring/renaming of validation
put the custom class(es) in the first as Hadley suggested
Merge pull request #457 from yihui/feature/unsatisfied-input

A first attempt of the custom error type for unsatisfied input dependencies