Change order of constraints added

* Since finalization happens in the leaf nodes first, then
  progresses up to the root object, make sure the constraints are
  added in that order. This change allows the respond_to? tests to
  be eliminated since the primitive check would happen first.
Move related TODO notes together