Note in the todo
Committing test case indicating failure in #150
I decided to "pass through" the parse logic if the value is not a
special query component.  Another option would have been to pass in
``conv=field`` when parsing the ``expr`` and rely on the ``parse_expr``
method to do the appropriate conversion.  THis would also allow us to
remove the list comprehension, since ``parse_expr`` is responsible for
doing the same.

The reason I chose not to go this route is because of the way that
parse_expr handles lists/tuples.  Typically a list or tuple will be used
to express a list of values for an "IN" clause in a query.  The current
logic in ``parse_expr`` is designed to handle this case, generating the
appropriate number of interpolation characters, etc.

Things get weird when we assign a list to a field and rely on the
field's db_value method to fix it before sending to the DB.

It comes down to not knowing whether to call db_value() before parsing
or call it after.  We can't call it before in all cases because the expr
may be an expression or something that needs to be parsed first.
Test parsing complex expression in update query