More than 32 Tags

Hi

To get lots of tags you can do this change

public uint Tag {
    get {
        return (flags & FlagsTagMask) >> FlagsTagOffset;
    }
    set {
        flags = flags & ~FlagsTagMask | value << FlagsTagOffset;
    }
}

to

public uint Tag { get; set; }

That will give you 2^32 tags or 4294967296 which should be enough.

Note however that with this change, tags will no longer be saved with the node data if you are saving graphs to file or using cached startup. However if you are not using that, or the tags are all just zero when you do, everything should be fine.