Corrected improper cast to CSharpSemanticModel
Fixed spelling mistake.
Using the metadata reader to parse analyzer type names before loading them.

The AnalyzerFileReference type is responsible for loading a dll and instantiating individual analyzer types. We were enumerating all available types through reflection. This was the root cause of very poor error messages for diagnostic authors while writing analyzers. Since we are loading an assembly to even determine what language the analyzers are for, we end up loading more assemblies than are needed in the VS process. This change solves both of those issues by making the following changes:

- Read the file using the metadata reader to determine all types that have the DiagnosticAnalyzerAttribute. Build a map of language -> analyzer typenames so that we can avoid loading the assembly if there are no types for the language of interest.
- The DiagnosticAnalyzerAttribute used to take a params array of strings - changing it to be a single string with allow multiple to keep the parsing simple.
- Extract the error handling code out to an event so that hosts can report errors encountered during analyzer loading.

 (changeset 1331893)
Fix for bug 1022125: diagnostic analyzer service shouldn't load diagnostic analyzer before it is actually used

This change refactors the IDE diagnostic service to track per-language workspace analyzers (VSIX based analyzers). Each analyzer assembly reference created for every analyzer asset is now queried for analyzers in context of a language, hence avoiding instantiating analyzers targeting a different language. Additionally, now that we use the MetadataReader instead of Reflection based Assembly load to find diagnostic analyzer types within an analyzer assembly, we will delay loading of language specific analyzer assemblies until it is queried for analyzers for that language. (changeset 1332021)
Added .winmd helper methods (changeset 1332312)
Address CR feedback. (changeset 1332543)
Allow parameterless constructors and instance initializers in structs
That is - regardless of the presence of parameterized or primary constructors.

In this implementation if a struct without a primary constructor has initializers and parameterless constructor is not present, we synthesize one to ensure that "new S1()" runs initializers.

***NO_CI***
 (changeset 1332600)
Command line compilers: Do not attach analyzer driver queue to compilation if there are no diagnostic analyzers to execute. (changeset 1332881)
Fix arguments in call to ILBuilderVisualizer.BasicBlockToString (changeset 1332978)
Bugfix 1007071 Format declaration statement with Pragma warning inbetween

When extracting trivia inbetween tokens, there are cases where the token themselves are trivia. In those cases, the contract and the extraction logic for the trivia should adjusted accordingly. (changeset 1333042)
Bugfix 991547 Get and Set Accessor should always be preserved in the same line (changeset 1333102)
 The LexerCache short circuits the lookup of keywords whenever the text is greater than the maximum keyword length.  This was being expressed as a hard coded value instead of a named constant.  Changed it to be a named constant and added a test to make sure it is up to date with the actual max keyword length (changeset 1333104)
Remove InternalsVisibleTos to projects that no longer exist. (changeset 1333206)
Addressing some of the CR feedback:

- made the metadata parsing more declarative.
- fixed up some error messages. (changeset 1333327)
Fixed handling of parameterless struct constructors in expression tree lowering.

  (changeset 1333851)
This fixes the warnings which occur during a build of Asyncpackage.  The nuspec file puts several dlls into the tools portion of the package which triggers a warning (won't reference dll unless they are in lib).  The behavior here is intentional as the dlls aren't meant to be referenced.  Suppress the warning to get to a clean build (changeset 1333949)
Fixing 994388: GenerateMethod inside exception filter should infer a return type of 'bool' not object.
The type inference service needed a case to handle CatchFilterClauseSyntax and infer the type as bool.
 (changeset 1334335)
Merge minor fixes from Josh Varty. (changeset 1334387)
Forgot semicolon :( (changeset 1334394)