Enhance argument parsing.

This gets rid of the old argument parsing code which was long and
wonky. This commit uses Python's built-in argparse module which as a
bonus also provides a nice -h flag.
Tiny cleanup.
Support export to different formats.

This commit add the --format option which accepts either json, html or
plain as value. To introduce a new format one must define a function
and add it to the format dictionary. See the source for examples.
Move main code back into main function.

Apparently the setup script doesn't like not having a main function...
Default format should be a key in the formats dictionary.
Student numbers may contains letters. Don't convert to an int.
Student number is required if config file doesn't exist.
Added AUTHORS File