Fix #10956 (QgsSnapper crash/freeze/issues)

QgsMapSettings instance of QgsMapCanvas may have been prematurely deleted by SIP.
The KeepReference annotation will force QgsMapCanvas wrapper to keep one more ref
to it, so its reference count will not go to zero while map canvas is still alive.