Augmented completions for arguments, packages

NOTE: Not ready for merge, but putting this up as a PR for now.

The sum of this PR: we now keep track of the current 'active' argument when completing functions, so that we can provide argument specific completions. Right now, we use it for:

- `"pkg"`, `"package"` -- package name completions.
- `"file"`, `"files"` -- file name completions.

This implies that we get better completions 'for free' in e.g. `read.table`, `browseVignettes`, `packageVersion`, and so on.

TODO:

- [ ] Implement completion limit on files (right now this just blows up with e.g. RStudio itself)
- [ ] Think about more files we might want to ignore.
- [ ] Add a bit on the completions returned signalling whether a particular set of completions is cacheable -- if we narrow the set of completions returned, we need to let the client know that it cannot use that as a cache.
- [ ] Investigate support for e.g. `` install.packages(pkgs = c(...)) ``. Note that this is quite tricky because we are now embedding an 'argument' context inside of multiple contexts; e.g. either we special-case some functions or we figure out how to handle it in general. However, getting this machinery right would enable e.g. `match.arg` completions, for example.
My suggestion is that countThresholdExceeded be factored into this function by adding the max and count parameters to this signature and then doing the boost bind as follows (for e.g. a max of 1000 items):

```cpp
boost::bind(subsequenceMatchFilter, _1, query, 1000, &count)
```