Find trees

Support the XPath `doc(...)` function and use it to locate trees outside of the application tree. This provides access to the `clients.vwf` client container or any other global tree.

@eric79, @allisoncorey, please review. @scottnc27603, @jessmartin, fyi.

The globals are searched by URI before being searched by name (or _annotation_, as I'm calling it for the root nodes). I think this is appropriate since the URI is a more fundamental attribute, and if an application searches by URI, it shouldn't risk matching the wrong tree if a system decides use an annotation on a global that matches the URI.

We could simplify the search if `matches` used `Array#find`, but `find` isn't in ES5. `Array.filter(...)[0]` is equivalent, but that doesn't stop once a match is found. It isn't a big deal since the number of globals should be small. But since it's already written this way, I'd rather not switch away from `Array#some`.