CaseListMixin refactor

Addresses this ticket: http://manage.dimagi.com/default.asp?115291

I have moved the logic for the `CaseListMixin` out of the `ExpandedMobileWorkerFilter` and into the `CaseListMixin` as reconmended on [this ticket](http://manage.dimagi.com/default.asp?115291#BugEvent.735657) and in https://github.com/dimagi/commcare-hq/pull/4113#issuecomment-52794731.

Have any feedback @esoergel ?



A more defensive approach would unpack the tuple here (`for sort_col, sort_direction in sort_by:`). As is, it ignores invalid data if an item in `sort_by` has a length > 2.