The alignment at the sign '=' must be divided in different cases.
Case  CT_ASSIGN
        The most common case such as:
        a = 1;

Case  CT_ASSIGN_DEFAULT_ARG
        The default value for an argument such as:
        Foo( int Foo = 5 );

Case  CT_ASSIGN_FUNC_PROTO
        The function prototype modifier such as:
        void* operator new(std::size_t) = delete;
        Foo( const Foo & ) = default;
        Foo( const Foo & ) = 0;

Introduce the new option align_assign_func_proto

Ref. #2170:
  https://github.com/uncrustify/uncrustify/issues/2170
