Moving copied init methods to Shape

All subclasses of Shape had the same initializers, so I moved them up
to Shape, including the `updatePath()` function
Removing copied methods from subclasses
overriding updatePath() in subclasses
adding updatePath() to lineWidth in Shape