refactor out activesupport dependency

We should be able to do the small amount of metaprogramming magic we do in Runner without requiring part of Rails.

This factors out ActiveSupport, and also changes the way we load plugins to be a little more dynamic, paving the way for externalizing plugins in gems soon.