This is a necessary step before we can remove Blender Internal in 2.8. I only
tested the basics, not yet all the Freestyle features.
Some of the code is simpler because we use Blender's triangulation directly
instead of dealing with quads. Also some progress printing code was removed
because the depsgraph can not tell us the number of objects ahead of time.