Merge pull request #55 from chriswoerz/master

More interface coverage to facilitate testing.
changed IDD to use IVR rather than the concrete implementation
IVO is used when it can in other interfaces
updated Json.net