The analyzers for CA1309, CA2213, CA2214, CA2200 were all calling GetSymbolInfo earlier and/or more often than they needed to and were slowing down analysis.  This change adds checks before the offending calls to GetSymbolInfo.  This also corrects the behavior of the CA2214 analyzer, which was previously producing warnings for all virtual methods called from within a constructor, not just for virtual methods defined in the class containing the constructor. (changeset 1250296)
fixes #68
Bug fix (923303): check null parameter and throw for API - GetAnnotations(...) (changeset 1250335)
Bug 687246: fix NumberStyles overlooked in previous checkin (thanks Chuck found out) (changeset 1250362)
Implementing Equals and GetHashCode for AnalyzerReference. (changeset 1250372)
Fixes extension method error reporting for the following issue.

interface I
{
static void M(this object o);
}

Result:
(3,17): error CS0106: The modifier 'static' is not valid for this item
(3,17): error CS1105: Extension methods must be static

Expected:
(3,17): error CS0106: The modifier 'static' is not valid for this item
(3,17): error CS1106: Extension method must be defined in a non-generic static class

The fix was simple - I simply switched the order in which the above extension method errors are reported. However, this has a small side-effect in that it changes the error reporting for the following case. The change seems acceptable (i.e. user would anyways have hit the new error that we report now as soon as they fixed the error that the old compiler was reporting in this case). I've fixed up the couple of tests that were validating the old error for this case.

class C
{
void M(this object o) { }
}

Old (Native as well as Roslyn):
Test.cs(3,10): error CS1105: Extension method must be static

New:
Test.cs(1,7): error CS1106: Extension method must be defined in a non-generic static class (changeset 1250408)
Report an error if an argument list is provided for an implemented interface. Fixes https://roslyn.codeplex.com/workitem/4. This is a port of https://roslyn.codeplex.com/SourceControl/changeset/f930b49714dc268a0e9df96d213d5516634a6450. (changeset 1250419)
Factor generating of custom debug information to a separate class. Remove mutable state from PEWriter related to custom debug info generation. (changeset 1250467)
Improve CS0523 error message for backing fields of primary constructor parameters. This is a port of https://roslyn.codeplex.com/SourceControl/changeset/2e28a89593fe4941209c87215855e5ae08775da2. (changeset 1250498)
Report name collision for “out var” declarations without initializers. Fixes http://roslyn.codeplex.com/workitem/42. This is a port of https://roslyn.codeplex.com/SourceControl/changeset/c8c365cfa05594119a2bf4d269fbf23b2ae51d33. (changeset 1250509)
Report ERR_MethodArgCantBeRefAny for “out var” declarations without initializers. This is a port of https://roslyn.codeplex.com/SourceControl/changeset/4b562c0061233f3e3a76de510ecd68b2d37fa1b1. (changeset 1250556)
Enable assignment to a declaration expression. Fixes https://roslyn.codeplex.com/workitem/18. This is a port of https://roslyn.codeplex.com/SourceControl/changeset/0d51dfd01a7ff479cdae0bb90837dfa3770e6562. (changeset 1250584)
Skip failing C# command line unit tests (changeset 1250622)
Skip a failing VB command line test (changeset 1250631)
Lock in version in case of future API changes. (changeset 1250752)
EnC: Nested types should be emitted in the same order in delta and full emit

Enumerate the set of top-level and nested types in the base PeWriter class.
 (changeset 1250804)
Ensure each lambda, including an implicit lambda in a query expression, has its own scope for declaration expressions within it. Fixes https://roslyn.codeplex.com/workitem/2. This is a port of https://roslyn.codeplex.com/SourceControl/changeset/e79e272450264fb41a2f7f39b3fbaf3a0e73021b. (changeset 1250867)
Provide option to opt-in to deterministic (non-zero) timestamp using "/features:deterministic". (changeset 1250882)
Implementing Equals and GetHashCode on AnalyzerFileReference instead of AnalyzerReference since reference equality makes sense for other AnalyzerReferences. (changeset 1251164)
Bugfix: Creating a C# Mercury project followed by a new VB Mercury project throws exception

If an open file is a linked file and that document or its project is unloaded, then we determine the new active context document for that linked file and switch the context. Following the same process during solution close may fail because the host document for the new active context document may have already been removed. There is no need to set the updated document context during solution close so we now skip this step in that case. (changeset 1251204)
Somehow, I didn't get this file included in my previous checkin. (changeset 1251215)