Use proper structures instead of lists
Don't parse the value of Content-Type header

Also clean up whitespace and other bits a little.
Loosen the type of header-name

If `:start-state` to `parse-header` is not `:name`, the header will not
have a name.  Hence the loosened type.
Merge branch 'refactor-defstructs'