Split-out code for each shape to separate file

Added a `shapes` folder and moved each shape function to its own file in the `shapes` folder.