Fix absolute path parsing

PathUtilities.IsAbsolute() and .GetPathRoot() weren't considering paths
starting with \ or / as absolute (unlike the corresponding methods in
the System.IO.Path class). This caused some operations on mono/Linux to
fail.
Fix accidental change to unit test
Migrate to Automatic Package Restore
Fix struct layout calculation for structs without [StructLayoutAttribute].

The calculation of struct layout for structs without [StructLayoutAttribute] was incorrect with respect to Dev11. Where Dev11 emitted [StructLayout(LayoutKind.Sequential, Size = 1)] for structs without any instance fields--synthesized or otherwise--we were emitting the same only for structs that had fields (including static fields) explicitly defined in source. This fixes the calculation to agree with Dev11.
***NO_CI***
 (changeset 1371608)
Noticed that lately we'd gotten away from the pattern of suffixing rule names with RuleId. Fixed
***NO_CI***
 (changeset 1371652)
PERF: Store a SyntaxReference instead of a SyntaxNode in VB's SynthesizedConstructorBase (changeset 1371669)
Allow substitution of .winmds in ReferenceManager when resolving referenced assemblies (changeset 1371676)
Clean up some old TODOs. (changeset 1371725)
1040233-Add docs for GetMemberGroup (changeset 1371754)
Implement fallback for field-like event accessors when Interlocked.CompareExchange method is not available. (changeset 1371805)
Added unit-tests to ensure that a type reference used as an attribute argument results in an assembly reference for the assembly where the type is defined. (changeset 1372103)
Rollback 1371084 for failed code review (changeset 1372321)
Add test for features strict struct definite assignment (changeset 1372340)
Change CodeFixProvider.GetFixAllProvider to be a virtual method instead of an abstract method. The virtual method returns null and fix authors can override it to provide a FixAll implementation. (changeset 1372363)
Move from cost-based cache to explicit caching

The current cost-based cache has no domain knowledge of whether items will be needed again or are safe to collect.  It is therefore usually over-sized. This change implements an explicit cache that must be enabled by consumers. The cache will hold trees and compilations as needed and release them when clients are done with them.

Currently, we enable explicit caching of the active document. Rename tracking and the solution crawler also request caching for each project they process. (changeset 1372494)
Have features strict also detect some illegal operators (changeset 1372508)
Enable passing test (changeset 1372910)
Enable passing test (changeset 1372915)
Get the text encoding the right place when creating syntax trees that are too short to make recoverable (changeset 1372921)
Integrate pull request to adjust absolute path checking for non-Windows platforms. Specifically, '/' and '\' should both resolve to an absolute path on Unix-likes. (changeset 1372953)