Add Semantic Errors method.

Adds a "/semanticerrors" method. This method is the semantic equivalent of syntaxerrors, and will return unknown identifiers, incorrect method calls, invalid casts, and other such errors. Note, however, that the underlying implementation in NRefactory is overly verbose, and will often produce multiple errors for a single semantic error. The underlying implementation also does not provide any error strings, so they are produced here. Not every possible error has an implemented error string, and some error strings are unclear.

As an example, the following code:
```
    public class TestClass
    {
        public void TestMethod() {
            "Test".Test();
        }
    }
```
will return a error of 
``
'String' does not contain a definition for 'Test'
``
There's one on the "new" and one on the "IDontExist", so this is less straightforward than it seems. I imagine it's possible, but I was wary of incorrectly dropping non-duplicate errors, so I haven't attempted to.