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'
``
Shouldn't we dedupe these?