Added DelegatingEquals
Added Record.copy() and Records.deepEquals()
Made RecordDelegate a DelegatingEquals