Manual rebase of the avoid_crossing_perimeters feature
Make the motionplanner work again after recent changes to approximation
Better implementation of the external motion planner
External motion was crossing still too much
Merge branch 'master' into avoid-crossing-perimeters

Conflicts:
	README.markdown
	lib/Slic3r/ExPolygon.pm
	slic3r.pl
Merge branch 'master' into avoid-crossing-perimeters

Conflicts:
	README.markdown
	lib/Slic3r/Config.pm
	lib/Slic3r/GCode.pm
	lib/Slic3r/Print.pm
	slic3r.pl
Merge branch 'master' into avoid-crossing-perimeters
Restore non-manifold warnings
Little cleanup
Bugfix: --avoid-crossing-perimeters was crashing when processing empty layers
Merge branch 'master' into avoid-crossing-perimeters

Conflicts:
	lib/Slic3r/GCode.pm
Fix plater slowness after the introduction of the vertical projection
Revert "Experimental feature: make a little move inwards by 45° after finishing the external perimeter and before retracting. #186"

This reverts commit c57e94c06590f212e9fe75318728108efa9d024e.

Conflicts:

	lib/Slic3r/GCode.pm
Test shortest path algorithm
Refactor and extend t/retraction.t
Tidy
Test retract lift
No need for a role to identify small perimeters
New implementation of the little inwards move before leaving a loop. #186
Test retraction with G0