Major refactor, add definition validation/cleanup

Quite a bit of code pulled out of Bumbleworks module and into more
specific classes, especially definition loading.  Defining processes
now involves more validation, and uses Ruote's reader, which checks
definitions for readability and does some safety checking as well.
Also moved all Ruote interactions into two new separate classes
(Bumbleworks::Ruote and Bumbleworks::TreeBuilder).