make data sources responsible for json conversion

eg Django models need to use DjangoJSONEncoder

Only the data source knows how to correctly serialise to JSON for it's objects, therefore the serialisation should happen in the data sources instead of the renderers