GR 42 - restrict fields

@twinge, please review
By way of example, this code allows "fields=foo.bar.one,foo.bar.two" - that is, you can cherry-pick fields at any ply. It will generate @allowed_exact keys for foo, foo.bar, foo.bar.one, and foo.bar.two, permitting recursion to reach the fields you want to see.