Cosmetic
While trying to fix bug #133 I identified some other problems I wanted to fix first:
 * Migrated all url.py doctests to test_url.py unittests
 * Improved validation for target.py: created a url_list option type
 * Unittested file:/// target (still failing, but will pass in the next round)

Also, and a little bit unrelated, minor refactoring in url.py to have a stricter __init__ which only
allows basestrings as input.