Move triangulator from the 3D Viewer

The next 3D Viewer version will no longer provide special-handling of `ShapeListImage`s, therefore we simply move the functionality here.

The only difference is the package name, the rest is identical, therefore no functional changes or performance penalties are introduced.