Move pipeline value truncation earlier to avoid OOMs

Summary:
I was hitting an out-of-memory error when loading the status for a large
long-running pipeline in production. Even though values are truncated in the
response, the full values are still retained in memory for the request and
copied several times, so this change makes it so we instead stream the pipeline
and slot entities into lightweight regular Python objects that contain truncated
values so that we don't need a reference to the full datastore entities. This
makes the after-the-fact truncation that we were doing earlier unnecessary.

Test Plan:
Load a big pipeline page (one that used to hit response size limits before that
was fixed). No response size limit is hit.
Load the list of root pipelines. It doesn't crash and the results seem
reasonable.

Reviewers: mattfaus

Reviewed By: mattfaus

Subscribers: chris

Differential Revision: http://phabricator.khanacademy.org/D7916