Remove unnecessary metadata

Removes several types of metadata which is not usually necessary at runtime, such as what makes a property or an event.

BeforeAfter
class MyClass
{
    public string DataPath
    {
        get { ... }
        set { ... }
    }

    public void Method()
    {
        DataPath += "abc";
    }
}
class Connections
{
    public string Split() ...
    public void Transition(string plaintext) ...

    public void Progress()
    {
        Transition(Split() + "abc");
    }
}

The above example combines this obfuscation with "Rename types/members". Among other things, this disassociates getters and setters.

.NET compilers have a habit of littering their output assemblies with giveaway information that reveals the structure of the original codebase. This information is useful only in contexts where reflection is employed and where a reusable external library is desired, but otherwise they serve no useful purpose. Rummage removes all the metadata that is not required for your program to run normally.