replace video source file functionality, added docs for it

Added functionality for replacing video source files. Refactored the library a bit so that `replace()` and `upload()` both call a private helper function to actually perform the file upload given an upload ticket.