Triangles

Refactor Triangles according to last pull comments
Case in point: you now have a guard condition just to facilitate your clever use of define_method above. In those cases where compactness and clarity are at odds, you should probably favor clarity.