LogEntry translation now also respects Property changes

Introduces RecordChanges.setTo so that whole record entries can be set,
 avoiding the need to go over each field for incoming records
Moves away from instanceof checks in DenseNodeTransactionInterceptor and
 instead uses a visitor for the same purpose
RelationshipGroups are no longer kept around when empty. Updates
 tests to reflect that.