This class has all the configuration of snapping and can return answers to snapping queries.
Internally, it keeps a cache of QgsPointLocator instances for multiple layers.

Currently it supports the following queries:
- snapToMap() - has multiple modes of operation
- snapToCurrentLayer()
For more complex queries it is possible to use locatorForLayer() method that returns
point locator instance with layer’s indexed data.

Indexing strategy determines how fast the queries will be and how much memory will be used.

When working with map canvas, it may be useful to use derived class QgsMapCanvasSnappingUtils
which keeps the configuration in sync with map canvas (e.g. current view, active layer).