Convert AbstractProject to better utilize structure form submission.

This change configures AbstractProject to more heavily use the structured form data available as a JSONObject via "req.getSubmittedForm()" vs. what it does today, which is to directly retrieve values via "req.getParameter".

This change also makes a handful of adjustments to the structure of the JSON blob that is sent through, including naming in a couple places.

NOTE: I have intentionally staged this as 3 incremental commits, which each affect part of the above transition and individually pass testing (locally).  I am happy to squash these together before merging, if that's preferable.