The code was trying to iterate over a `range(0, pntsPerLine)`, but
pntsPerLine was a float resulting from a division.
Convert pntsPerLine to an int, and only ignore waste if this was
successful.
* Relaxed valid base shape requirement, as long as it can return a
shape using part.getShape()
* Improve ViewProviderPath performance by sharing the same selection
observer
* Relocate libarea binary installation