Move over to the new all_rules-based setup.

This effects a few changes:
* There is no global rules object any more. Only all_rules.
  Rule lookups happen through the new _rule method.
* New rules become official once the mode they were created in
  is popped. In general, this will help avoid order dependency within
  a language definition block.
* The `command` method now runs the command string within a temporary
  default ('') mode. This means rules defined through a command call
  are effective immediately, but it doesn't add any order to dependency
  to a set of rules defined with in a single indented command block.
* `base_grammar.water` has been directly cleaned up. This is slightly
  awkward, as I'll now have to modify layer{1,2}.water and the
  `commands` module to bring the base grammar compilation in line with
  `base_grammar.water`.
* There's a new `base_mode` global for easy access to the base mode. I
  needed this to run the command `>: base_mode.indent = ''`. I wish I
  didn't need a new global, but that was the cleanest thing to do that I
  could think of just now.

Next up: bring `layer{1,2}.water` and the `commands` module in line with
`base_grammar.water`.