Add ability to set inputs from server

This is still a work in progress. It implements:

* Adding `session` argument to `shinyServer()`. This will allow us to pass things between the app code and the shinysession object.
* sending messages to input objects
  * on server: `session$send`
  * on client: input bindings have `receiveMessage` function
  * on server side, inputMessages are put in a queue which gets flushed with the rest of the output.
* sending arbitrary javascript to the client. Unlike inputMessages, these are sent immediately.
* getting the state of input objects (not yet implemented for all input bindings)
* unit tests for input bindings (testing `receiveMessage` and `getValue`)


See example app at:
https://gist.github.com/wch/5266962

```
runGist('https://gist.github.com/wch/5266962')
```