Custom fields are now edited as a series of name, type inputs with an
"Add Field" button to append a new empty pair. Since the JS must build
this on demand for new fields, use it to create the initial fields as
well. save_fields maps the pairs to json and POSTs them back to the
set_custom_fields method of the admin-controller; which unquotes and
decodes the result into the needed list of dictionaries.