Pcbnew, export Solder masks in Gerber Format: fix not working export when the solder mask minimal width is not 0 (the exported shapes were the same as if the vule = 0) with boost version >= 1.56
This is due to the fact the boost::pylygon function resize ( a inflate/deflate function) used for calculations does not work with boost version >= 1.56.
Use Clipper  inflate/deflate function instead. It is faster and works fine.
Fix minor issues. Fix some outdated and broken BOM python scripts. Add info in BOM python scripts.
BOM dialog: remove a not very useful button, and merge its function with an other (not perfect, need more work)
Add message box to show info added in BOM python scripts (See scripts/bom-in-python/README-bom.txt about this info)
More about BOM dialog. Still not perfect, but more easy to use.
Pcbnew: fix Bug #1395594 (pcbplotparams parser sensitive to formatting)
Looked like a minor issue, but was due to a more serious bug, when using 2 different DSN_LEXERS which were not synchronized.
The fix is not perfect, but unfortunately, the parser used to read the PCB_PLOT_PARAMS in .kicad_pcb files is also used in legacy board file reader.
Therefore it is better than write 2 parser functions, one for legacy files, the other for the .kicad_pcb files, which make the same thing.
Factor out some common code in hotkeys_module_editor.cpp
Modify GetCenter and Rotate functions in DRAWSEGMENT to act according to the type of the edge
Add duplicate and exact move tools to modedit

These are accessible via the context menu, and via hotkeys
Get move exact working in the GAL modes too
Duplicate now works with selections
Only handle move exact once, even though it seems odd to not handle it here...
Increment pad numbers when duplicating. Move pad number incrementing into the D_PAD and MODULE classes
Fix display of selection info after duplicating in GAL
Fix comment regarding move exact
Fix undo of move exact - use UR_CHANGED
Remove duplicate function stub and transition from EDIT_TOOL - how duplicate would work in pcbnew is unclear
Fix logic error in Cartesian to polar conversion
Protect against a null dereference
Whitespace cleanup
Properly end move operation when duplicating an in-flight component
Add an 'undo inhibit counter' to allow tools to declare an atomic operation. Use this to prevent a duplication registering two undos: one duplicate and one move