Add AssayIdListConstraint

Also some refactoring on constraint/projection binding/validation.