Add constructor on Shape companion

I added this constructor to streamline the creation of custom Shapes, and modified the standard shapes to utilize it.  What do you think?