Are batch field resolvers a viable optimization? 
:wave: I just heard about Grafast from a recent [HN comment](https://news.ycombinator.com/item?id=37814153), about a post talking about the known "graphql.js creates a bunch of promises" perf issue.

It's amazing to see you're working on the problem already. :1st_place_medal: 

Given you've thought a lot about this problem, I'm curious if something as simple as "batch field resolvers" would be a potentially viable optimization approach? (Grafast's plan resolvers certainly seem optimal, but I'm still grokking them...)

For example, the prototypical `User.firstName` field resolver:

```
const userResolver = {
  firstName(user) => user.firstName
}
```

If this was:

```
const userResover = {
  firstName(users) => users.map(u => u.firstName);
}
```

This would cut out a whole swath of promises (if `firstName` was async) by making 1 promise per field, instead instead of 1 promise per field+per entity.

I dunno, is this approach missing something obviously naive? I feel like it probably is, otherwise it seems someone would have tried it already?

Thanks!
