Refactor

* added scoping to DSL for more powerful options
* event definitions now include the logic in a provided block (no more data sources)
* code cleaned up substantially
* compiled event representations are hierarchically nested, cached
Yep, this is the last piece of the puzzle, but the old spec/implementation had to go. Will be reimplementing shortly, but am prioritizing the rails integration right now.