Refactor logging settings and argument parsing
Better error handling in API discovery

Added 'name' parameter to the Service base class to make the error message more
informative. Removed unnecessary __init__ duplicates in the subclasses,
otherwise they would have to be all updated.
Fixed boto services url

Since the boto services require a url in the settings, the publicURL field was
added to the api discovery output as 'url'.

Now by default, the Service base class does no discovery, thus services which
are not supported yet or don't provide versioning at all (e.g. ec2, s3) will
work and only provide an empty list of extensions and versions, removing the
need to blacklist them.