Optimize prefetch_tree by skipping boring models

This is a weird one. We can save a lot of queries during prefetching by skipping models without any fields.

A model is 'boring' if its pk is its only field. Widgy creates lots of these, because there are many container widgets that have no data, like Layout, Bucket, FormHeader, etc.

For boring models, we don't need to go to the database while prefetching because they don't have any data! We can just instantiate them with their pk. This might break something while saving -- I think it will change the behavior of `Model._state.adding`, and I'm not sure how that actually works.

There's a way to take this even further -- get rid of the boring tables altogether and leave `Node.content_id` NULL for boring models. This would speed up tree cloning too, because lots of boring queries are wasted to duplicate each boring model.

can you leave a note why we don't expect the bucket's contents, just for the future?