With most recent Roslyn preview

Not sure you want to pull into master branch though. There is one skipped test, one failed test. The fail is simple, we didn't add enough reference dlls to the compilation, but I'm not sure how it worked in the old version of Roslyn. Can review later.
PlainName is to assist in filtering predicates against inputted SyntaxType names (class, ifx, etc). I don't remember why it's important to have this in an extension method, but I would hazard a guess that it is to hide some of the API details to make it more futureproof :)