Refactor ExpandedMobileWorkerFilter, adding WebUser data to Case List report

Fixes http://manage.dimagi.com/default.asp?111439

I had a branch locally for a little while with some separation-of-concerns refactoring on the ExpandedMobileWorkerFilter.  When I started digging into the above issue, it looked like that refactor would help clarify and resolve the issue.  The `pull_users_from_es` method was difficult to reason about and I think it was wrong, so I replaced it with a function to return an ESQuery object.

This is kind of a big one, so I'm throwing it on staging and asking Christy to check it out.

Edit: passed QA http://manage.dimagi.com/default.asp?125896
If `user_type_filters` is an empty list this results in an invalid query I believe. ES doesn't like `{"or": []}`.