Don't depend on ActiveSupport, but use it if it's available

If it isn't available use class_attribute functionality that has been
extracted from ActiveSupport
Support older active supports that don't define directly into String
Support all versions of activesupport