Work around Django bug

If you write a custom model field whose get_prep_value, get_prep_lookup,
get_db_prep_value, or get_db_prep_lookup transforms a non-None value
into None, it generates '= NULL' instead of 'IS NULL' like it's supposed
to. That's because it determines the query type before it prepares the
field's lookup value (the order should be reversed, but patching Django
or getting a fix merged upstream would be much more difficult than just
disallowing a query value of '').
Rewrap long docstring; fix minor build bug