RUIAN: remove unused code
Add accurate calculations of meters per degree on WGS84 ellipsoid
Add LatLon class for accurate distance transformations
Use accurate LatLonSize tolerancies for object lookups
RUIAN: remove comments and unused variables
Add EdObject.isInsideBounds()
RUIAN: improve DataSource bounds checking

First, we must check both new and retraced object bounds, not only the new one.

Second, avoid objects that are too close to DataSource bounds because we also
edit object's neighborhood. Minimal required area is equal to the highest
distance tolerance used in code, but it doesn't harm to ask more.
LPIS: improve DataSource bounds checking
RuianLands: improve DataSource bounds checking
RUIAN: move retraced_nodes to reuseNearNodes()
Take care of deviation angle in RemoveNeedlessNodes
RUIAN: touching nodes must be connected after retrace update

Otherwise, we also connect to inaccurate nodes of the retraced polygon.
Which in turn leads to extra needless nodes in the new geometry.
Never remove needless node outside downloaded area

Nodes outside downloaded area must always be considered as required
because they can have incomplete references.

This bug occurs if ReuseNeedlessNodes is called e.g. on a clipped way
which is partially out of data source bounds.
Clipper: don't allow changes outside downloaded area

Possible reasons of this bug:

Clip polygon is (partially) out of the downloaded area. This should
be avoided by other code.

Subject (multi)polygon contains invalid or suspicious parts which are
silently "fixed" by the clipper algorithm. For example, two touching
inner rings are transformed to a single hole, self-crossing outer
way is split to multiple ways etc.
Clipper: log modified nodes outside downloaded area
Merge remote-tracking branch 'upstream/development' into for-next
Merge pull request #8 from Maatts/for-next

WGS84 meters-to-degree calculations, better downloaded area checks, misc fixes