fix(Request.get_param_as_list): Handle missing list items

This patch modifies get_param_as_list to handle missing list items by
inserting None as a placeholder. If the query parameter's value is just
commas, then they are collapsed into a single None (as if the query
param hadn't been specified).

Fixes #154
Merge pull request #175 from kgriffs/issues/154

fix(Request.get_param_as_list): Handle missing list items
fix(Request.client_accepts): Accept parsing doesn't handle application/*

This patch adds support to the parser for robust accept header handling,
courtesy of mimeparse. Care was taken to make the common cases fast.

As part of this change, Request gains a new client_prefers() method that
can be used for content negotiation when the service supports multiple media
types.

Fixes #155
Merge pull request #176 from kgriffs/issues/155

fix(Request.client_accepts): Accept parsing doesn't handle application/*
feat(util.to_query_str): Smart handling of lists

This patch improves to_query_str so it can recognize instances of
list and convert it to a comma-delimited string value.

Closes #152
Merge pull request #174 from kgriffs/issues/152

feat(util.to_query_str): Smart handling of lists