For #60 eliminated ODataWriter in favour of implementations of IODataWriter.  Added a factory and changed things to go through the factory strategy to choose the appropriate writer