Refactor Rectangle

Has a good example of what attr :perimeter does.

We can use `attr` rather than `attr_reader`