Uber rexical

I dunno if this is the direction you want to go.

Most of these commits are whitespace and should probably go in. Much of the indentation in generator.rb are just plain wrong and made more unreadable by the heredocs. I've cleaned all that up.

The last commit in this series is the real meat tho, I made it so that actions look like ruby regexps, with `/`s and the ability to put flags on each regexp. I did NOT do this to macros since they can expand into themselves but probably should do something to address that (eg `Regexp.new(str, parsed_flags).source`). This change also means you can have regular whitespace in your regexps.

I also made it so that macros are expanded with `{{...}}` instead of `{...}` so that they're not ambiguous looking with ranges. I know that's not strictly necessary, but I use `{}`s a lot and needed better visual differentiation to not lose my mind.

Anyhow. Talk to me. I'm flexible on this and am happy doing a full fork if necessary.