Extracted Reconciler classes from mvba-suit

Moved the Reconciler classes into EtlGate. Previously, they were part of
our line of business application.

A reconciler's Reconcile method takes two IEnumerables, compares them, and
then returns a ReconciliationResult that wraps the IEnumerable showing
which items were added, deleted, updated, or are the same.

For example, the OrderedRecordReconciler uses a RecordComparer (an ordered
list of FieldComparers) to compare the Records on a key. If the keys
match, then it compares each field. If the keys don't match, then it wraps
the Record from the left or right IEnumerable in a ReconcilationResult
with a status of Added or Deleted and increments the left or right
IEnumerable as appropriate. If the records match on the RecordComparer
(key), then it compares all of the field in the two Records. If any field
is different, then it wraps the Records with an Updated status. If all
fields match, then it drops out the records as the same.