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 thought about that and I think I prefer an explicit gesture for exclusion and a conscious decision to do that. If we add the ability to include, there might be tests disabled by mistake because the test author said that the test can run on, let's say, Windows 8 and then Windows 10 comes out which is not on the inclusion list. So, everything runs by default unless you explicitly mark it to be ignored.