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).

For a reason that isn't entirely clear to me, the behavior works but the
integration test I want to write fails. I can't verify that the input
re-renders with the proper text. I'm moving this into testing to give
Pat a head start before I figure out the test.