Use Newtonsoft instead of DataContract. Fixes #1164

This is not a risk free change, as it could potentially break some client like CLI if there are differences before/after. Hopefully our test coverage is sufficient.

I had to carefully add `[JsonIgnore]` to unwanted props, and if I missed one there would be extra crap on the payload.