add Dutch translation

Thanks to Carolijn Tacken
underscores allowed in variable names

a_xx gets TeXed as a_{xx}
exam.py: wrap everything in strcons!

you get wrapped in strcons! and you get wrapped in strcons! and you get wrapped in strcons!

Turns out ETree doesn't like it when you set node attributes to floats instead of strings.
escaped braces in strings stay escaped

Because braces are used to sub variables, we need a way to put them in strings without that happening.
\{ and \} will remain as \{ and \} until they're displayed.
This was the best solution I could think of - things get evaluated so many times before they're displayed that the slash really does need to stay in the string until the moment it's inserted into HTML.

fixes #261
JME: deal with comments at the end of lines
examparser: must delimit strings containing // for a comment
util.splitbrackets: cope with unmatched } at start

a}b{c}d -> 'a}b','c','d', instead of not splitting.
add a "print results summary" button to results page
generate a session ID

Someone requested a random ID for each exam, so they could tell if students handing in printed results pages were copying each other.

new localisation string 'exam.random seed': "Session ID"
fix rubbish hash function
Merge branch 'master' into feedback

Conflicts:
	locales/en-GB.js
	runtime/scripts/exam.js
	themes/default/files/scripts/display.js
	themes/default/xslt/result.xslt
display session ID and print button