Context-specific completions for R

This PR adds context and scope, specific completions for source documents.

![screen shot 2014-10-30 at 1 48 26 pm](https://cloud.githubusercontent.com/assets/1976582/4851879/2da9b1ba-6076-11e4-8461-4dcba246a1cb.png)

A summation of the features in this branch:

- Function autocompletions automatically insert closing parens when appropriate -- for example, `rno|` would complete to `rnorm(|)`, while `debug(rno|)` would auto-complete to `debug(rnom|)`. (Certain function calls, ie, those potentially expecting functions as symbols, turn this behaviour off.)

- Auto-completions work for generic objects -- for example,

```R
x <- ""
attr(x, "foo") <- function(alpha, beta) {}
attr(x, "foo")(|
```

provides auto-completion results for the parameters `alpha` and `beta`. This is particularly useful for e.g. `list`s and `environment`s containing functions, and also for e.g. `S4` accessor methods.

- Auto-completions understand arrays

For example,

```R
m <- matrix(1:4, nrow = 2)
rownames(m) <- c("alpha", "beta")
m[al|
```

produces the completion `"alpha"` (which is automatically quoted after selection).

- Auto-completion understands 'chains' and dplyr

For example, in

```R
mtcars %>% dplyr::select(|
```

auto-completion results are returned for 1) variables within `mtcars`, and also for function arguments in `select` (dropping the first argument).

As an added goodie, auto-completion also functions for the `join`s, so for example:

```R
inner_join(foo, bar, by = c(|
```

provides completions for variables in `foo` when on the left side of an `=`, and `bar` when on the right side of an `=`.

- Auto-completion has a (basic) understanding of R6

E.g.

```R
library(R6)
example(R6)
q$|
```

produces completions for the methods on the `q` (`Queue`) object generated in the example. More complex completions, e.g. when defining an R6 class, will be later handled with custom completion hooks.

- Context-specific variables are added to completions when appropriate

By scanning the source document (ie: not touching R), we provide completions for:

1. Any variables assigned in the current, or parent, scopes, and
2. All functions (and their arguments!) available in the top-level scope.
Good form is to declare these all "final" but don't assign them in the declaration. The final modifier means that they _must_ be initialized by all constructors and that they can't be subsequently modified.