Add support for missing datum and origin object types in the Assembly
solver's findPlacement() function:
- App::Plane: handle XY/XZ/YZ origin planes with correct rotations
- App::Point: handle origin point (identity placement)
- PartDesign::Line: extract edge midpoint and direction from shape
- PartDesign::Point: extract vertex position from shape geometry
instead of returning raw obj.Placement
- Add obj.Shape.isNull() validation to all PartDesign datum branches
- PartDesign::Plane falls back to obj.Placement on invalid shape
instead of falling through to App.Placement()
Closes#55