Update response.py

Just something I'm monkey patching locally to allow setting the same header multiple times.

Useful for things like link headers, and setting cookies.
Update response.py
Update test_headers.py
Update test_headers.py
Update response.py
Merge pull request #273 from xiaclo/patch-1

Allow duplicate headers to be appended
test(Response): Improve resp.append_header tests

This patch improves test coverage of resp.append_header and makes the
approach more consistent with the other functional tests in the same
module.
Bump version to 0.2.0a1
fix(Request): SCRIPT_NAME may not always be present in the WSGI env
fix(Request): Improve parsing of application/x-www-form-urlencoded

This patch adds error handling for non-ASCII form request bodies. If
an improperly-encoded request is submitted, Falcon will log a message
to the WSGI error log and ignore the request body.

The docstring for Request was updated to provide more information
regarding Falcon's parsing of application/x-www-form-urlencoded,
especially regarding the client's responsibility to properly
encode the request body.

Closes #313
fix(Request): Be more lenient regarding query string param names

This patch allows a wider variety of characters to be used in
query string params, while also slightly improving the performance
of parsing the same.
* Refactor internal APIs to allow overriding traversal by subclasses.  This
  enables subclass implementations to provide e.g. restish-style object-based
  traversal.

* Add a `params` property which gives access to the full POSTed parameter list.

* Handle the case where a form POSTs keys multiple times.  This is a more
  common way of doing multiple values for a single key.  Thus these two forms
  are semantically equivalent:

  key=1,2,3
  key=1&key=2&key=3
Merge pull request #307 from warsaw/refactor

Internal refactoring and a few other changes to support restish-ish traversal
chore(AUTHORS): Add Barry and Jeffrey. Thanks guys!
Merge pull request #316 from kgriffs/issues/313

fix(Request): Improve parsing of application/x-www-form-urlencoded
Merge pull request #317 from kgriffs/qs_parsing

fix(Request): Be more lenient regarding query string param names
fix(Request): Unify behavior of get_param for lists

This patch changes get_param so that it behaves the same whether a
list was specified in the query string using the HTML form style (in
which each element is listed in a separate 'key=val' field) or in
the more compact API style (in which each element is comma-separated
and assigned to a single param instance, as in 'key=val1,val2,val3').

Closes #312
Merge pull request #320 from kgriffs/issues/312

fix(Request): Unify behavior of get_param for lists
feat(Response): Add convenience method for setting stream and length

This adds a convenience method, set_stream(...), to the Response class
for setting the stream and its length at the same time, which should
help people not forget to set both and maybe save some typing as well.
fix(Request): Empty value in query string should not be parsed into None

Before this patch, a query string such as "foo=1&foo=&foo=44" would
be parsed into [('foo', '1'), ('foo', '44')] and subsequently folded
into: params['foo'] = ['1', '44']. However, the equivalent list
expressed using the comma-delimited "API" convention "foo=1,,44" would
result in ['1', None, '44'].

This patch normalizes the behavior between the two different list
conventions.

BREAKING CHANGE: When using the comma-delimited list convention,
    req.get_param_as_list(...) will no longer insert placeholders,
    using the None type, for empty elements. For example, where
    previously the query string "foo=1,,3" would result in
    ['1', None, '3'], it will now result in ['1', '3'].

Closes #314