Refactor full run JSON output.

Streamlined port rendering so that input and output ports are treated the same.
Makes use of new methods on the run model and renders empty list if ports are
missing.