Extract a list of points from a point object.
Parameters
----------
point_object: Part::Feature
Either a `Draft Block`, a `Part::Compound`,
or a `Sketcher::SketchObject` containing points.
Returns
-------
list, int
A list of points that have `X`, `Y`, `Z` coordinates;
the second element is the number of elements.
If the list is empty, the second element is zero.
To Do
-----
- This function currently extracts the points inside a `Draft Block`,
a `Part::Compound`, or a `Sketch`. To make this more general,
this function could be augmented to extract a list of points
from the vertices of any object with a `Part::TopoShape` (2D or 3D).
- If the input is a `Part::Compound`, it should handle all valid types
of objects simultaneously, that is, `Draft Points`, `Part::Vertexes`,
`Sketches` with points, and possibly any other object with
a `Part::TopoShape` as in the previous point.
It should recursively call itself to extract
points contained in nested compounds.
Referenced by draftobjects.pointarray.PointArray.execute().