Removed col tuples from expressions
Use output_type in get_sources() instead of recursing
Removed broken multicolumn support from expressions
Fixed prepare() to return clone of self

Previously reuse of same F-object could lead to altering the query where
it was used before.

Also added some changes to how output_type is calculated. It is now OK
to have no output_type for inner expressions, but outer expressions must
always have one. Internally _output_type can return None, but
output_type can't. The reason is that we want to support F('foo') + 1,
where + 1 is converted to Value(1) and that doesn't have any known
output_type. It is thus OK to use the output_type of F('foo'). However,
if directly doing .annotate(Max(Value(1)), that isn't OK, as we need to
know the output_type of the value to do conversions. So, users still
must define output_type in that case, that is Max(Value(1),
output_type=IntegerField()). Another solution would be addition of
logic to Value() initialization so that it guesses the output type based
on isinstance checks.
Merge pull request #1 from akaariai/nonaggregate-annotations

Nonaggregate annotations