Fix issues with service environment variables.

In cases where the environment variable had no value in the template,
the interface made it impossible to set a value. It would be overwritten
by a hidden field, and the UI was otherwise broke in a few ways (field
still indicated it was empty and the docker run command never updated).
Move to straight inputs while allowing the label to remain a magic
editable thing (though some JS tweaks had to go in place to disable the
default behavior where a label being clicked would focus on its
associated input).