graphics: add class for box shape
units: fix some numeric operators not working

The classes 'degrees' and 'radians' inherit from 'numeric' and use its
operators.

There's an issue with the operators that don't return a reference. They
return the parent class type ('numeric') while they would need to return
the child class type ('degrees' or 'radians').

There's no other choice but to reimplement these operators in the child
classes.
sample-three-dimensional: slowly rotate the cube