A bunch of changes:

* Add before/after callbacks for much more control over the parsing process. Enables context-specific parsing.
* Allow for named capture groups in expressions by nauseatingly rewriting the group references in the combined regex.
* Add `parse` method on Fluorescence object for manual parsing of arbitrary strings. Useful for context-specific parsing.
Add a Ruby grammar to show off a bunch of the new features.

The fact that we can parse contextually lets us do a lot of stuff we couldn't before. For instance, it lets us highlight method parameters properly, because we can run the default-value capture back through the parser. It also lets us highlight a number of constructs that use {braces} without those rules stepping on one another.
Update the HTML and JavaScript grammars to take advantage of new features.
Update the test document.
Update the README to explain all the stuff I just added.