Merge i18n Branch with Master

It seems like there are some misc changes in this branch which I didn't do.

The two major additions are:

 - A script, build/clean-exercises.py, which takes in some HTML exercise files and runs them through lxml and writes out the output.
 - The result of running the script against all the HTML files. It fiddles with the order of attributes (which is annoying) but also fixes some HTML formatting errors (which is good).