Use html5lib with bs4 if available.

* Explicitly request html5lib in the BeautifulSoup constructor.
* Add instructions for installation of html5lib to the README

Beautiful Soup 4 (bs4) can use any of three parsers: html.parser (builtin),
lxml, or html5lib. It seems that for at least some Coursera classes (fe-001
for example), only html5lib produces an acceptable parse tree. However, if
both lxml and html5lib are installed, bs4 will pick lxml by default. This
patch ensures that html5lib is used if it is available. These changes should
not affect users of Beautiful Soup 3.
Merge pull request #91 from rhayward/master

Fix syllabus parsing errors by preferring html5lib over lxml.
Rework finding of preview lectures.

This time, we only grab preview lectures and nothing else.
Fix breakage of pages pointing to wikipedia.

The solution that we take here is still suboptimal, in the sense that we
report a link to external sources as `None`, but we are on the right path
for further processing.
Revert (with modifications) "Remove unused code for hidden videos.".

This reverts commit 5ca7dbb9, since we still have uses that want to grab
those hidden videos by the University of Washington.

This closes #95.
test: Add sample of class with hidden videos.
Rename variables to not redefine Python builtins.
Remove unused cookies-related parameter from `parse_syllabus`.

The cookies states should ideally be entirely dealt with when we migrate to
the `requests` library (which, from a first look, should had been adopted in
Python's standard library).
test: Rename regular syllabus to order after __init__.py.
test: Rename preview HTML to order after __init__.py.
test: Remove comments from the preview test code, but prevent it from running.
Don't abort downloads when a single course causes an error.

If you try to download things after being authenticated, the Coursera
servers sometimes give you an HTTP error 500 (that's internal server error),
which interrupts our downloads.

Catching an exception thrown by the urllib2 code makes our code robust to
those server-side errors (bugs?).
test: Add test page with 'missed sections'.
test: Add test to be sure that we do not miss sections of lectures.
Fixed #98: Downloading University of Washington course materila
Merge pull request #106 from MagiX13/master

Fix problems downloading "hidden videos" from University of Washington (Fix for #98).
Make sure to always return a value from functions.
Added a check for cases when the HTTP Error does not hold a 'reason' attribute

In such cases the script throws an error and exits without finishing further downloads
Fixed indentation
Merge pull request #108 from swechha/master

Add check for HTTPErrors without a 'reason' attribute to the native downloader.

For example, HTTP Error 403 does not have a 'reason' attribute, in this case the script would throw an exception and stop further downloads.