Move Xml Result output to the engine as a service

**For Discussion**

All classes related to creating of result files have been moved from the console runner to the engine, so that the features are available to other runners as well.

ResultWriters will be one of the types of addins we support, so the code is set up with that in mind even though we are still creating all the writer classes internally.

Let's look at and discuss the interfaces in particular. Remember that the engine.api assembly is intended to be non-versioned, so we want to leave as much runtime flexibility in the interfaces as we can.