Add `Rectangle`, refuctor Angle

Add rotation methods for lines and vectors. Rotation can occur about the
origin or about a pivot point.

Add `RightAngle`, which can be used in some places instead of `Radians`
where the calculation can be done more efficiently (notably, when
rotating vectors about the origin).

Add `Side` (`Left` and `Right`), and method `Ray.side(Vector): Side`

Rename `Angle` -> `GenRadians`

Rename `ArbitraryRadians` -> `AnyRadians`

Add type alias `Radians = GenRadians[_]`

Add approximation for `PointDifference`.

Add `Vector` cross product, dot product, and reflection across a line.