add MOTION_MODE_PROBE_NO_ERROR
install G38.{3,4,5}
utilize MOTION_MODE_PROBE_NO_ERROR
cleanup global var and push probe mode into probe_get_state
test only for & PROBE_ACTIVE
bump mantissa to uint16_t to enable G38.5
add/install probe_errors_enabled in mc_probe_cycle
hop over probe pull-off sequence after probe miss

and while "no errors" is enabled (G38.3, G38.5)
add probe_finalize to keep things DRY

this allows the PRB report to be valid when in "no errors" mode and the probe fails
report probe_succeeded with probe status
Merge pull request #491 from tmpvar/G38.2+

G38.2+
Updated variable spindle and new probing. Minor bug fixes.

- Minor bug fix for variable spindle PWM output. Values smaller than
the minimum RPM for the spindle would overflow the PWM value. Thanks
Rob!

- Created an optional minimum spindle PWM low-mark value as a
compile-time option. This is for special circumstances when the PWM has
to be at a certain level to be read by the spindle controller.

- Refactored the new probing commands (G38.3, G38.4, G38.5) code to
work better with the rest of Grbl’s systems.

- Refactored mc_probe() and mc_arc() to accept the mode of the command,
i.e. clockwise vs counter, toward vs away, etc. This is to make these
functions independent of gcode state variables.

- Removed the pull off motion in the probing cycle. This is not an
official operation and was added for user simplicity, but wrongly did
so. So bye bye.

- Created a configure probe invert mask function to handle the
different probe pin setting and probing cycle modes with a single mask.

 - Minor bug fix with reporting motion modes via $G. G38.2 wasn’t
showing up. It now does, along with the other new probing commands.

- Refactored some of the new pin configurations for the future of Grbl.

-
Merge branch 'edge' of https://github.com/grbl/grbl.git into edge_up

Conflicts:
	gcode.c
	motion_control.c
	motion_control.h
	spindle_control.c