Use the argparse Python module

This greatly simplifies the command line parsing.
Get default configuration from config module
Expose configured plugins via crawler.plugins

This avoids having module loading code in different places.
Initialise crawler with a configuration

This changes the constructor to accept a dict configuration of the
crawler. This is currently combined with the configuration in the config
module but the goal is to replace it completely.