BasicDBList and LazyDBList both extend DBObject, but the only common list-like interface among them is java.util.List.

This could also be implemented as:
* return BasicDBObject || LazyDBObject
* return DBObject && !(BasicDBList || LazyDBList)

I thought this would be the most future-proof, but I can change to something else if you think it's clearer.