Prevent unnecessary work in @webapi_request_fields.
Review Request #9681 — Created Feb. 20, 2018 and submitted
@webapi_request_fieldsdecorator made unnecessary copies of
dictionaries in order to simplify some uncommon lookups, and had two
loops through one of the dictionaries when processing fields. This
wasn't particularly efficient, and made some upcoming work a bit more
This change simplifies the logic to operate on existing state, instead
of copies of state, and to simplify the code for both normalizing values
and checking for field requirements.
Djblets and Review Board unit tests pass.