Add plenty of checks to coursera submission process

We need to test this heavily, although it appears solid to me. Things to notice:

- Checks for common mistakes with Course ID including entering a web address, using the example, and using an all numeric ID
- Allows for retry after submission fails for any reason
- Probably some other things that I'm forgetting at the moment

The point is let's try to make this baby fail in every possible way.