Fix crash when running unit tests on Linux

When running PrintLayoutTests in NUnit.exe started from Monodevelop
one could observe a stack-dump after closing NUnit. It turns out
that this is for the same reason as FWNX-837: the render engine,
which is implemented as a COM object in C++ code, holds a reference
to the PalasoWritingSystemManager (pwsm) but doesn't get
released until the app exits. At that point the pwsm is already
collected, so we get a crash. Unfortunately (most of) the changes
implemented in FWNX-837 somehow got lost.

This change implements a helper class, DisposableRenderEngineWrapper,
that wraps an IRenderEngine object and gets added to a singleton
container. When the singleton container gets disposed after running
the tests, the wrapper class calls Release on the render engine COM
object. This implementation is superior to the one originally
implemented in FWNX-837 in that it doesn't require pwsm to implement
IDisposable.

Change-Id: I0eb3017e2ddf69198d258b338bbd199c69aeb574