Hysteresis code (Neil Martin's version fixed and simplified)

Hi Lawsy!

I worked on Neil Martin's original hysteresis code and I think I found the bug that caused the layer shift. I also simplified his code (now the starting position is changed, instead of planning a new movement line), and tested it on my SD2.

The artifact is not there anymore and it seems to work as expected. I didn't have time to properly calibrate my printer and see if this compensation actually helps, but it doesn't seem to have any bad side effect. I just discourage to use the hysteresis compensation on the Z axis together with the Z wobble compensation: I haven't tried and I don't dare to :)

I also changed the way the MCodes are defined: now they are in a macro like in the Z-wobble compensation so the code is more encapsulated.

For the records, the bug in the original code seemed to be that Neil was comparing coordinates in mm with coordinates in steps. The coordinates in steps were almost always bigger than the ones in mm, so the correction ended up being always in the same direction. I'm not 100% sure because I changed that part of the code quite heavily.