We currently use int, int64, uint, and uint32 throughout the bson, builder, and elements package, especially for lengths. While we must use int and int64 to satisfy various Go interfaces, we should choose one type and use it internally. Either uint or uint32 makes the most sense since lengths are never negative. In this case we should also cast things to this type, e.g. uint32(len(foo)).
For now, we should use uint, since it will always be at least a uint32.