bson: encode maps & slices as empty if nil.

I was encoding them as bson.Null, but existing
clients expect empty objects instead. Legacy wins.
bson: change custom encoders to not use Null for slices and maps