Implemented Counting Sort in C#

Tried to optimize the default implementation to also work on negative entries.
Also testing out Code Contracts.