to be lazy since the db context isn't initialized yet (will speed up start a bit too), ensures that the macro/xslt caching
clearing is only done on the single server instead or re-posing another distributed call.
in code. Unit tests for CacheHelper, unit tests for umbraco.macro, updates to
ObjectExtensions.TryConvertTo + unit tests, enhanced disposable method of ApplicationContext.