Nicer toStrings for physical plan

And a little bit of related cleanup. I prefixed the types that are "double-nested", such as `BsonField` and `Reshape`, as well as `Bson`, which we don't typically import. But I did not prefix the types under `Selector` and `ExprOp`, because we do tend to import them.

See #125.
Arguably it would, but it seemed like more of a judgement call so I stopped short of adding all that code. But I remember that's what we originally said, so if you're still so inclined I guess I'll go ahead and implement them.