Add basic brushing support

This adds basic brushing support. It's used like this:

```
# .brush prop adds prop that's used when an object is brushed.
# branch_brush is basically a mark_rect
ggvis(mtcars, props(x = ~wt, y = ~mpg),
  mark_symbol(props(size.brush := 200)),
  branch_brush()
)
```

See demos/brush.r for a bar graph example.

Right now, brushing only triggers `.brush` props, but we'll obviously want to add the ability to send information back to the server.

@hadley, does this look like a reasonable approach?