Sanitize perf counter category instance names

- Adds support for instance names passed in by Katana v3+ (currently Katana v3+ breaks perf counters in SignalR)
- Tweaked how instance name is set internally in PerformanceCounterManager to make it testable without affecting the public contract
- Updated the sample project to use Katana v3 to ensure we get coverage of fix
- #3002
```sanitizedName.Substing(0, Math.Min(sanitizedName.Length, 127))``