add markdown style links to railroad diagrams

With these changes you can put markdown style links in the text of terminals and non-terminals in the railroad diagrams DSL, ie:
T: here's a [link](https://google.com/) and [another] one

Note that you'll have to add CSS to style the links so that they're visible (BTW: it seems that when a spec has multiple RR diagrams, the CSS for them is duplicated...).

It seems that bikeshed is stripping the namespace from the link's href attribute, so these links don't actually work at the moment. I'll leave sorting that out to you :-)

While I was there I also made it pretty print the svg output of railroad diagrams (you can disable all formatting by passing None for the indent) and fixed a bug in the DSL error checking.
Right, I found that having preludes required to be either before or after the colon depending on the command type to be inconsistent and a difference the user shouldn't have to worry about. Also the documentation states that *all* preludes are after the colon, which isn't the case.

This change is really intended to move all preludes between the command and the colon for consistency.  (Sorry, forgot to update the docs.) For block commands it still accepts preludes after the colon for backward compatibility with existing specs.