title: Add a vertical line with different intercept for each panel in ggplot2
body: <p>I'm using ggplot2 to create panels of histograms, and I'd like to be able to add a vertical line at the mean of each group.  But geom_vline() uses the same intercept for each panel (i.e. the global mean):</p>
  
  <pre><code>require("ggplot2")
  # setup some sample data
  N &lt;- 1000
  cat1 &lt;- sample(c("a","b","c"), N, replace=T)
  cat2 &lt;- sample(c("x","y","z"), N, replace=T)
  val &lt;- rnorm(N) + as.numeric(factor(cat1)) + as.numeric(factor(cat2))
  df &lt;- data.frame(cat1, cat2, val)
  
  # draws a single histogram with vline at mean
  qplot(val, data=df, geom="histogram", binwidth=0.2) + 
    geom_vline(xintercept=mean(val), color="red")
  
  # draws panel of histograms with vlines at global mean
  qplot(val, data=df, geom="histogram", binwidth=0.2, facets=cat1~cat2) + 
    geom_vline(xintercept=mean(val), color="red")
  </code></pre>
  
  <p>How can I get it to use each panel's group mean as the x-intercept?  (Bonus points if you can also add a text label by the line with the value of the mean.)</p>