implement application.getCustomData()
getCustomData for directory, and fix expansion issue

I observed #85 while writing the it tests for custom data
on directories, thus I’m fixing it in this commit.

The fix is to bring back the logic of “don’t cache
any requests that have query options”.  I had previously
removed this but now I’m bringing it back, as it’s simpler
than trying to write fancy query caching rules into the
datastore.

You can achieve cache warming by expanding the resource
the first time you get it, then using the getter methods
on subsequent request for the same data.