Initial stab at making search performance acceptable

The main performance bottleneck was tree selection. This was solved
using an IN query:

```
trees = Tree.objects.filter(plot_id__in=plots)
```

This isn't really great, however, because this sort of join should
happen via a, uh, join. That said, this gives up the performance we need
to start working on search.

The other main performance helper was to only select trees that are
 useful for benefit calculations (have a species and a diameter).