Creating some primitives allows for a scale value (via python) that will scale
the object accordingly. For objects with a radius parameter (like
cylinders, spheres, etc.) passing a scale different to (1,1,1) would
result in unexpected behavior.
For example:
>>> bpy.ops.mesh.primitive_uv_sphere_add(radius=2, scale=(1,1,2))
We would expect this to create a sphere with a radius of 2
(dimensions 4,4,4) and then be scaled *2 along the z-axis
(dimensions 4,4,8). But this would previously create a scaled sphere
with dimensions (2,2,4).
The scale was simply divided by two. Maybe because the "radius"
parameter for creating the primitives was confusingly named "diameter"
(but used as the radius).
The fix adds a scale parameter to ED_object_new_primitive_matrix
and also renames the wrongly named "diameter" parameters to "radius".