Stop using strings to specify constraints.

This adds a `constraints` trait to CoordinateBox which acts as a
namespace for all the constraint variables owned by the object.