Require named parameters for Builder#extrude

Compatible with 1.9.x
Added more tests for Model::Builder
Require named arguments in Extrusion#initialize

Compatible with 1.9 hash arguments
Model#push can accept a class to instantiate

If the first argument is a Class, it will call new on that class and pass it the rest of the argument. If the first argument is an instance derived from Model, it will convert the remaining parameters to a Transformation, apply the transformation to the instance, and then push it.
Updates for the latest Geometry changes

Rectangle#new requires named arguments