Updating validation API: validation algorithm now adds errors to a
builder parameter rather than each instance creating a new list object.
CompositeValidationAlgorithm and reusuable validation algorithm
components added.