Updated error handling, flake8 changes.

repost_video is now a transaction.
The uploader and video_exists now raise exceptions instead of triggering
asserts on error.