Background: https://github.com/dart-lang/sdk/issues/24933
Salient bits:
* sampling will only start if a client registers interest in diagnostics.
* sampling will stop if clients stop requesting diagnostics.
* sample results are coming back as a string (but a double would be better).
* the mapping of context folders to averages in not garbage collected; since it's only potentially leaking `_Average` objects (and not contexts) when folders are deleted, I think that's fairly benign.
BUG=24933
R=brianwilkerson@google.com, devoncarew@google.com
Review URL: https://codereview.chromium.org/1463923003 .
ElementKind.FILE will be used in search.findElementReferences
1. In the 'element' field of responce when a URI is at the given offset.
2. In the only element of the 'path' field of SearchResult(s) for URI references to a URI or a library identifier.
R=brianwilkerson@google.com
BUG=
Review URL: https://codereview.chromium.org/1409333002 .