Reorganize project structure to improve maintainability and add comprehensive testing documentation and tooling support.
Also: - fix some constraints to allow ObjectContent to be sent across async tasks. - use new Size enum instead of Option for specifying object content sizes - add tests for part size calculation and validations