Changes in v2.19

*****
This version of NCrunch introduces changes to the grid protocol. This means that grid node servers must be updated
before they can be used with the new version.
*****

Added a new global configuration setting, 'Track engine performance'. When this setting is enabled, NCrunch will track
performance data related to the execution of tests and report this in the Tests Window. The reporting covers all
relevant activities performed by the engine from the point of time at which a test is queued until its execution
results are registered with the engine.

Added support for .NET 4.6.1.

Switched the format of NCrunch settings files from UTF16 to UTF8.

Fixed a test identification issue that was causing NCrunch to intermittently fail to correctly execute NUnit3 tests,
specifically after tests were added or removed from the suite. This was resulting in instability inside the test
environment, causing results to be stored incorrectly between tests and some results to be lost altogether.

Adjusted the NUnit2 integration so that the underlying framework builds the test suite during the NCrunch analysis step,
then re-uses this same suite for execution runs launched later within the same process. This prevents NUnit from
needing to reconstruct the entire test suite more than once, with the potential to shave entire seconds off the first
test run when working with large test assemblies.

Fixed an internal threading issue with the potential to cause lockups inside the engine. This was particularly noticeable
when taking commands from the UI.

Fixed an issue where inherited ASync tests did not have their entry point correctly identified by NCrunch. This made it
impossible to navigate to these tests and prevented them from having state stored between sessions.

Fixed a performance issue where tests with moderate to large amounts of trace information were dragging on the engine,
making it less responsive.

Restructured NCrunch's test discovery system to remove bottlenecks and improve performance. This has yielded an approximate
60% reduction in the time taken to discover tests using both static and dynamic analysis.

Fixed an issue where NCrunch was not correctly synchronising its processing queue with changes being made to test metadata.
This was causing issues such as tests being executed on build servers even where they were specifically excluded by an
engine mode.

Added a new parameter to the NCrunch console tool ('/T'), which can be used to instruct the tool to leave test projects
out of the HTML metrics report.

Introduced a speculative fix in an effort to resolve MSTest NCrunch module assembly resolution issues.

Improved the engine status messages for situations where a solution has been opened with no supported projects.

Adjusted the handling of NCrunch's loading of unsupported project types from Visual Studio to improve stability and
performance.

Fixed an issue causing Shared Projects to be added twice to NCrunch's project configuration list.

Fixed an issue that was preventing NCrunch from correctly detecting NUnit3 categories at fixture level when no
categories on the tests themselves existed.

Fixed an issue that was preventing NCrunch from running NUnit3 tests with string.Format characters in their names
(i.e. '{', '}').

Fixed an issue that was preventing the test trace output from correctly fading out its text for tests that are out
of date.

Added a warning about a potential performance problem caused by the Microsoft Git Provider continuously scanning the
git repository in response to file system changes made by NCrunch.

Added a new solution-level configuration option, 'NCrunch Cache Storage Path', which can be used to specify the directory
used by NCrunch to store its cache data.

Updated code-signing certificate.

Fixed an issue that could cause sudden loss of code coverage information sometimes when building projects.