Upload API

This is the amazing API for uploading artifacts! As of opening this PR, the tests are failing because the code has not been implemented yet. If you see any problems with the way the API works, comment.

This PR goes with #63 

/cc @AbrarSyed @Jadar