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.
Yep, although the link is super old (and I didn't fully understand the last section of it).

Assigning return value to a const reference is fully covered by elision. It's not yet an optimization but part of the standard functionality-wise.