Feature conditional

This is a decent refactor of the portion of the compiler which generated the code to build the object trees. It now generates marshalable description dictionaries, and building the tree is delegated to the Declarative class. This opens the door for a ton of metaprogramming possibilities. For example, the `Looper` is updated to create an independent scope for each loop iteration, and it's now possible to have a `Conditional` object.