Cleaner way of writing functions for multiple types

As @taylorswift has suggested, I think it would be reasonable to add an Angle type with trig functions and pow, etc. to FloatingPoint to make numeric programming easier. These additions would be a solution to many problems like the one that started this thread.

On a related point, and already raised elsewhere, ExpressibleByFloatLiteral should also be renamed so that it is obvious to people that it is only applicable to BinaryFloatingPoint.