Update StructuralEquality.n

1. Добавлены свойства атрибутов AllIgnore = true - игнорировать все поля. Поля для использования должны быть помечены как [EqualsNotIgnore] или указаны в атрибуте класса как NotIgnore 
2. Добавлена возможность указать поля вариантов NotIgnore = A.name
3. добавлена возможность отключить создание неизменяемых кусков с помощью указания WhenGenerateCashField необходимого минимального числа числа константных полей. К константным полям относятся неизменяемые примитивные типы и строки. по умолчанию значение 7.
4. Произведен отказ от использования лямбд.
5. Немного сокращен генерируемый код

[StructuralEquality(Ignore = name, NotIgnore = A.name, AllIgnore = true)]
variant X
{
 | A { name : string; name2 : string; other : int; }
 | B { name : string }
 | C {
     [EqualsNotIgnore] a1:int; 
     [EqualsNotIgnore] a2:int; 
     [EqualsNotIgnore] a3:int }
}