Use appropriate buffer for QgsGeometry::XXXContainedInLine. Fix #10999.

We have reduced the problem by reducing the size of the buffer used in QgsGeometry::XXXContainedInLine functions.
The error may still occur depending on:
   the accuracy of the projection used,
   the distance between the object to modify and the nearest point.
So we caught the error, stop capturing and displaying a more specific message.
We want the smaller possible buffer.
geomDigits function give us the number of digit behing the point (this depends on projection system).
So we make a buffer with distance = 0.1 ** (coordinate precision -1) around the line to test if the point can be considered on the line.
It works good : 
~0.001 for local projection system
~0.1 for mercator
It is not perfect, just a little correction of the existing code (1.0 ** x always equal to 1.0)