Conditional run attributes

Added two attributes that allow tests to be ignored on particular operating systems or runtime frameworks. We need this for the downlevel CI runs.

There is a little bit of code duplication because of how xunit implemented `Theory` and `Fact`...

Example usage:

```
[ConditionalFact(
    ExcludedFrameworks = RuntimeFrameworks.Mono, 
    ExcludedOperatingSystems = OperatingSystems.Windows7And2008R2)]
public void MyTest()
{
    ...
```

@bricelam @Tratcher 
[I'm not sure this does what you think it does](https://www.youtube.com/watch?v=G2y8Sx4B2Sk).

On [MSDN](http://msdn.microsoft.com/en-us/library/windows/desktop/ms724439(v=vs.85).aspx) it says:

> Applications not manifested for Windows 8.1 will return the Windows 8 OS version value (6.2). Once an application is manifested for a given operating system version, GetVersion will always return the version that the application is manifested for in future releases. To manifest your applications for Windows 8.1 please refer to Targeting your application for Windows 8.1.

While this might not be a problem for our tests right now, it is a deceptive value to use. And we normally don't manifest our apps. So you get Win-Compat behavior instead.