A factory for creating
PreparedGeometrys. It chooses an appropriate implementation of PreparedGeometry based on the geometric type of the input geometry.
In the future, the factory may accept hints that indicate special optimizations which can be performed.