1) Using boost::preprocessor to reduce code duplicities when defining
new configuration values.
2) Implemented static hash() and operator== on StaticPrintConfig derived
classes to support hash tables of instances thereof.
Custom printer with center of bed at 0,0 results in "toolpath outside print area" #3510
The G92 A0 B0 was incorrectly considered to be equal to just G92
to reset all axes.