emit R Markdown warnings for render* functions as well as shinyApps
append rather than replace knit_meta with Shiny warning
Merge pull request #527 from rstudio/render-rmd-warning

Emit R Markdown warnings for render* functions as well as shinyApps
use UTF-8 for showcase mode, and assume DESCRIPTION is also UTF-8

this time we should fix #136 now; I did not find other files that have to be
read with UTF-8
Calling getOption() with default is slow

This has a measurable effect in apps with lots of reactives.

Reported by Aran Lunzer
Merge pull request #528 from yihui/bugfix/showcase-encoding

use UTF-8 for showcase mode, and assume DESCRIPTION is also UTF-8
Merge pull request #533 from rstudio/bugfix/slow-options

Calling getOption() with default is slow
fix #500: check for null source ref highlight points
Merge pull request #538 from rstudio/bugfix/showcase-nullref

fix #500: check for null source ref highlight points
add a Note section to the documentation of conditionalPanel(), since it always confuses R users

e.g. https://groups.google.com/d/msg/shiny-discuss/AFItYcRXzyw/ywRy3EEtjw4J
Merge pull request #539 from yihui/doc/conditionalPanel

add a Note section to the documentation of conditionalPanel(), since it ...
recursively select the first choice, to make sure `selected` is a scalar, even when `choices` is a list of lists (optgroup)
closes #326: generate <optgroup> when `choices` is a named list of choices

note the nested level of optgroup can be greater than one here, however, the HTML4 spec only allows one level, i.e. optgroup must have select as its direct parent http://stackoverflow.com/q/1037732/559676
choicesWithNames() should also consider the optgroup case now: all optgroup nodes must be named
validateSelected() does not validate `selected` for the optgroup case; this function is only for shiny <= 0.9
factor out the code to generate options from checkboxGrouptInput() and radioButtons(), and use the new generator generateOptions() for them
make updateSelectInput(), updateCheckboxGroupInput(), and updateRadioButtons() work

now session$sendInputMessage() does not send options as the choices data, but as a pre-generated raw HTML string; in shiny.js, we just receive this string, and .append() it to the input after the input is emptied
when choice is not a list, we need to return its first element
when we need <optgroup> for the child elements of `choices`, we just generate it no matter what the child element is

e.g. we use <optgroup> for A even if A only has one element: list(A = 'a', B = c('b1', 'b2'))
inherit doc for updateFooInput() from fooInput()