Re-implemented <<textinput>>

* <<textinput>> creates an <input> text element which, when the passage
is left by any means, sets the passed variable to its string contents.
It may also have an additional parameter, a link expressed in link
syntax, which is used to create a <button> next to it.
* The previous <<textinput>> behaviour of triggering the passage change
via the Enter key has been removed for now.
* Added CSS for black textboxes and buttons to Sugarcane.
* IDE tag colours now cycle based on the hash of the tags, to
differentiate dissimilar ones from a distance.