SemaphoreSlim fixes

- FIxed DebuggerDisplayAttribute
- AvailableWaitHandle checks for disposal, making it closer to the
specification
Improved SemaphoreSlim

- field _maxCount is now readonly
- all acess to _count (except in constructor) is volatile