a custom type of errors for unsatisfied input dependencies
we -> you
New horizontalLayout function; put elements in a single table row
Use standardized widths for selectize/jslider

The 100% width worked well inside of a sidebar, but in other situations
like full-width columns or zero-min-width tables a fixed width is better.
If there's demand we can add parameters for setting the width to custom
values including 100%.
Update NEWS
Replace horizontalLayout with flowLayout; add splitLayout
Add inputPanel
Update NEWS, tweak description for flowLayout
Tweak padding
encode pathname when necessary on browsers that supply it decoded
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
cosmetic: both `if (FALSE) expr` and for-loops return NULL