Black magic that fixes Evernote issue #4

If we retrieve the actual SQL query then the Paginator breaks for
querysets containing `.extra()` calls. This DIRTY HACK allows the actual
`SELECT SUM (*) FROM ...` SQL query to select and join the necessary
tables.

(I suspect that the current filtering constraints aren't fully populated
when the paginator tries to calculate the count, and this hack somehow
forces it.)

This might be a bug (or undocumented behavior) in Django's ORM querying
facility internals, so any further investigations should be done in that
direction.

Original issue is at evernote/pootle#4.
Added missing semicolon
Got rid of superfluous extra variable
Get rid of `getViewUnits`

Everything regarding unit/page retrieval is now contained within
`fetchPages`, and works asynchronously as it should from the beginning.

This work makes major changes to the way unit fetching works:
- Several pages will be retrieved within a single request (yay!)
- All unit fetches are asynchronous
- Unit inserting, sorting and index-based browsing has been vastly
  simplified by returning a uid<->index mapping

Quite a bit of unnecessary code has been removed as well.

There are still lots of possible improvements and optimizations, most
notably moving the unit fetching code to the collection of units.
Return translation URLs along with units

Simplifies stuff and avoids nasty client code.
Renamed parameter for clearer semantics
Avoid caching retrieved pages
Simplified variable naming
Cleanup: removed unused variable declarations
Cleanup: proper variable scoping, use a more meaningful name
Request specific unit ids instead of pages

The concept of pages is problematic for the editor since we are dealing
with a result set of a dynamic nature that is being changed in the server.
This resulted in unexpected behaviors and reliability was missing when
performing certain actions in the editor.

From now on the client will request an explicit list of unit ids the
server needs to query and return. The client keeps a sorted list of
unit ids fetched in the very first request, therefore it knows which units
it has and which ones are missing.

Fixes issue #48 on Evernote.
UNDO