Add a 'fuzzy file search' widget

Not ready for merge, but ready for discussion -- @jjallaire, maybe we can chat on Monday?

![file-search](https://cloud.githubusercontent.com/assets/1976582/5232998/9ae2ea30-7719-11e4-888e-8928f0c1b241.gif)

This PR adds a file search widget that can (currently) be used as a more powerful method of obtaining filename completions. The general idea:

1. The user hits `CMD + SHIFT + P` to pop up the search widget,
2. The client gets all files available within the current project from the server,
3. The client narrows and displays the top ~20 matching results based on their query, using fuzzy matching,
4. The user can click or select a file entry to insert that into the source editor.

An obvious problem we see currently with e.g. RStudio is that long files will trail off-screen, but the fact that this works speedily even with RStudio itself means it should be useful for other projects as well.

The main reason I have this as a separate widget rather than as part of the built-in completion framework -- the current completion UI attempts to display _all_ available completions, so the user can scroll and whatnot as necessary. This widget is more restricted in that it _only_ displays the top 20 matches, and the onus is on the user to type a narrow enough query to identify the file they want (or at least narrow to 20 candidates). This allows us to effectively display and narrow a larger set of candidate completions.

Let me know if you think this would be useful, and have any other ideas for e.g. display, UI, and so on.
We've actually got all of the file names in the project in memory already (this is in the static instance of the SourceFileIndex class within SessionCodeSearch.cpp). You can do a file search using the searchFiles method (this is what's currently used by Ctrl + .).

2) In the case that we need to do the search directly I think that even if "ag" is fast that we can't do the feature unless list.files is fast. Or, if it's not fast enough then we should do the invocation on the C++ side and make it