Refactor query into two separate steps.

This allows to run the gathering step once, and then run multiple,
different rankings on it.

Revamp logging.  Uses proper format and distinct levels.

Deprecate magic passing of arguments to components, rather use a very
slim API now.
Use explicit API in projection fields.
Allow filtering out retweets.
Sort imports.
Support MongoDB collections in run interface.
Explicitly specify required fields.
Prettify log statements.
Remove implicit nonsense limit.
Add more details to raw tweets output.
Fix string check in py3k.