Change rack id in test from number to a string to avoid confusion
Some cleanup of the constraint code, bug fixes along with tests
Document the meaning of the different contraint operators
More constraints cleanup