Don't JSV-decode string values for string properties
retain trailing slash (if any) when combining paths
Avoid IndexOutOfRangeEx when combining paths
fixes android build
Added overridable HttpListenerBase.SetAppDomainData to populate AppDomain with required data required to construct urls
INCR to v3.9.48
Change use of IList<T> to use more useful ICollection<T>
Added Razor Nested Layout failing test

Created a new unit test that fails when a given Layout has a Layout
itself.
IntroductionLayoutRazorTests.Simple_Nested_Layout_Example()
fix - set the correct ContentType for optimized response
Corrected Razor Nested Layout test
Update ServiceExtensions.cs

Fix invalid Cast
Enable Service.cs to work with to work with IREDISClientsManager
Update ServiceExtensions.cs

Handle null IRedisClientsManager
#668 use extension method to create object instance
Only check for IsWatchedFile if a file was found.

There are some situations where the e.FullPath filename isn't found by
the virtual file system provider (it doesn't exist, etc.) so we need to
account for that before calling views.IsWatchedFile.
Add LastMessageProcessed to MessageHandlerStats
Add .pdf to Config.AllowFileExtensions
Update express NuGet to point to Razor dir
pre-INCR to v3.9.49 - setup for vNext
Added support for Nested Razor Layouts

Updated the RazorPageResolver ResolveAndExecuteRazorPage function to
recursively render layouts until it finds one with no RazorPage Layout
value assigned.