Currently CXXMethodDecl::isMoveAssignmentOperator() does not look though type sugar and so if the parameter is a type alias it will not be able to detect that the method is a move assignment operator. This PR fixes that and adds a set of tests that covers that we correctly detect special member functions when defaulting or deleting them.
This fixes: https://github.com/llvm/llvm-project/issues/56456