Fix terminus testing for Ruby 1.9
The order of evaluation of abstract classes (Class.new) changed in Ruby 1.9,
resulting in the hacks here that worked around the "must be bound to a
constant" rules in the indirector starting to fail.
Technically, though, we don't actually care: we can define a whole class stack
properly, binding everything the way the system expects, and then clean it up
afterwards.
Less stubbing, better tests, and clearer logic, all of which are pretty nice.
Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>