Add encoding
Update open_listing_page()

It now takes the trailing part of a URL, so that we can use it to
retrieve the various pages we need to pull all of the tracklisting info
(e.g. segments.inc, broadcasts.inc).

Also switch it to use requests instead of urllib and lxml instead of
BeautifulSoup.
On download error, return error code 1
Update requirements; specify minimum versions
Completely overhaul extraction of content

The BBC revamped their site, breaking the scraper. We now have to
process three different webpages so that we can get the programme
title, the first broadcast date and the actual tracklisting.

Using XPath with lxml makes some code much simpler.
Use codecs.open() instead of encode()
Remove comments from main()
Simplify making the output tracklist string
Minor docstring and comment formatting edits
Add shebang and encoding lines to cmdline.py
Fix broadcast date

The text in the relevant element could be e.g. "Yesterday" rather
than a full date which isn't that useful when taken out of context.

Extract the date from an attribute that contains it instead.
Change base_URL to base_url
Handle tracks with multiple artists

The artist XPath failed when there were multiple artists.

This was a good example: http://www.bbc.co.uk/programmes/b04kzqlf

Has tracks with two and three artists. Artists are separated by commas,
except for the last one which has an ampersand preceding it.
Python 3 compatibility (hopefully!)

The only change 2to3 pointed out was this use of unicode literal.
Update docstrings to be more accurate
Update README
Merge pull request #6 from StevenMaude/fix-for-october-2014-site-change

Fix for October 2014 site change; plus general tidying and improvements (+ latest Python 3 support, hopefully, haven't tested).