Include function arguments in scope in auto-completion results

This PR brings something that will make @jcheng5 very happy -- when attempting to retrieve autocompletion results in R modes, we look at all functions within the current scope, and also include function names and arguments within that scope in the completion list.

![screen shot 2014-10-29 at 10 18 14 am](https://cloud.githubusercontent.com/assets/1976582/4830705/aded3a50-5f8f-11e4-8bbd-8d0fe1b99b22.png)

There are still some TODO bits before merge, but I think this can be reviewed now.

1. I think there is some extra work needed to respecting an 'implicit' completion; e.g. when there is a single completion made from just functions in the scope, then the completion is automatically filled but we still get a pop-up.

2. This only works for declared functions (e.g. `x <- function(x, y) { ... }`; I could see people wanting the scope tree expanded to include e.g. `shiny`-specific things, which currently do not enter the scope tree). Maybe for another PR?