Add Visitors::NonDeterminism module to allow for non-deterministic
visitors
Refactoring load order, make Transitions more array-like
Refactor NonDeterminism, move basic visitation logic to module

Visitable objects can now take the determinism of the visitor into
account by implementing accept_deterministic and accept_non_deterministic