Change access level

Based on Resharper's "To public/private/protected/internal" actions.

```csharp
public class Foo { //<-- Action suggests making Foo internal
   void Bar() {} //<-- Action suggests making Bar public, protected, internal or protected internal
}
```

This action does not mimic Resharper's action completely. Whereas Resharper allows changing the access level of a virtual method/field/etc. (and cause compile errors as a result), this action is specifically disabled in those cases.
Also, this action is somewhat smarter when it comes to `protected internal`. It allows changing the modifier to `protected internal` and lets the accessors in protected internal properties become `protected` or `internal`.

Also, in accessors, this action also allows changing the access level back to the property's access level.
For instance, in `public int X { private get { return 0; }}`, this action can change the getter back to `public` (leaving no modifier there).