Define toString for parsed header/param lists.
1. Object.defineProperty the 'normalize' method on parsed objects.

   This will allow them to be serialized to a string that can be sent across the wire.
   TODO: 'escaped' rule, User_Agent comment, clean up

2. Define 'valueOf' on quoted_string and comment productions.
   This should be called when the value (without delimiters) of the field is desired.
   Simply referencing the object will not work in all cases, such as strict equality checks.
Refactor Object.defineProperty -> defineNormalize
fix whitespace/semicolons
fix headers rule .normalize
Rename normalization function and use options objects.
Revert "Make server_val productions more consistent."

This reverts commit b51eb991bb986617a14909cd0fc914f68680901c.
product rule production: 'token' => 'product_name'
Normalized empty headers have nothing after colon.
Normalize escaped values. Undo point 2 of 04a5b3a.

This makes it so that text fields allowing escaped characters can be compared with ==, but not ===.
I thought this was better than requiring .valueOf() to be called, especially since many fields allow escaped characters.
mapList: rename parameter 'append' -> 'isHeaders'
Fix User-Agent normalization.
Fix name_addr normalization.
Add normalize/parse round-trip testing.
Fix fixed-width digit field normalization.

As with bab148a4, this breaks strict equality checks.
More round-trip testing.
"Pass" round-trip tests when the first parse fails.
xparamsBuild passes options obj to combineParams
More fixed-width digit fixes.

See 8fafd42aae9c27021e2271e09be6b7ff3f2cfa93
More name_addr normalization fixes.

See 46ffead1bf84b44285b834d20d655857edd713bf