Misc ESQuery additions and bugfixes

@dimagi/team-commcare-hq This line used to read
`self.es_query['size'] = self._size or SIZE_LIMIT`
which is nice and concise, but if you set size to `0`, it'll evaluate as Falsey and fall back to `SIZE_LIMIT`.
`a = b or c` is often used as shorthand for `a = b if b is not None else c`, but they are not strictly equivalent.  Remind me to stop using it.
Remember kids, syntactic sugar gives you cancer of the semi-colon!