[PermutationOrdering] Set delegate pointer, add copy and move constructors for correct behavior

PermutationOrdering derives from VirtualOrderingBase such that the virtual method 'map_index_dynamic' can be overwritten. But in order for this to actually be called, OrderingBase's _delegate pointer has to be provided. This was not the case until now, as we derived from LexicographicOrdering, which simply sets _delegate to null. Now all contructors contain an additional call OrderingBase::setDelegate(this) to make sure _delegate is always valid (even when the object is being copied or moved!)

Credits go to Steffen, thanks for the hints!