Add JSON view for blame Similar to how we use SoyMapData/SoyListData directly to avoid unnecessary allocation in the HTML path, use a custom type adapter for JSON serialization rather than converting objects needlessly. Ranges are specified as (start, count) using 1-based numbering, which matches "git blame" and "diff -u" (but not JGit). Change-Id: I4b359cc4b8a4e26c2bfcabfa65c6083829518756