Cast lvalues to rvalue type during most comparison operations

This leads to better numeric and date comparisons, since we are comparing
actual types and not strings.
Cast lvalues to rvalue type during most comparison operations

This leads to better numeric and date comparisons, since we are comparing
actual types and not strings.
PR fixups - will be squashed

 - Fixes getting type information from RHS query params
 - Adds unit tests
 - Adds support for Django 1.7
 - Fix Python 3 support
Add support for isnull on key/value pairs