Implement code coverage for C#.

Summary: This implements code coverage using the cstools project.  This identifies code that isn't covered by unit tests, and when submitting diffs, code coverage (should) be displayed next to the diff in Phabricator.

Test Plan: Apply this patch.  Submit a diff that changes an assembly or file that does have unit test coverage; the coverage should be displayed on the diff right hand side.  At any time you can also run `arc unit --detailed-coverage` to get a coverage of the files you've changed.

Reviewers: Sabre070

Reviewed By: Sabre070

CC: buildbot

Differential Revision: http://code.redpointsoftware.com.au/D77