refactor: extract path rendering into own classes and added unit tests

path rendering was getting to messed up and this commit introduces
dedicated classes to handle that better.
refactor: remove unnecessary code from CanvasProgressSpinner

clear canvas is not necessary anymore since Nifty will do that
automatically internally now
fix: remove stupid back that broke round ends of arcs