FileUploader first commit.

Collects files, renames them upon size and age constraints, tests the above.

Lots of ```TODO(dkorolev)```. And time to discuss export events in more detail.
Looks too templated and hard to understand. That is downside of generalisations.