Contain the rulebook env inside the rulebook.

This ties the lifetime of the rulebook environment to the rulebook, so
we know that we can safely call Load() on the rulebook later.

This also means that the rulebook library may contain "bad" rulebooks
that didn't load properly.  We'll handle that in the UI later.