This class is to be used by other applications as a foundation from which to build various trait compostion tools.
It attempts to decouple others from the internal representation of traits (currently the Class::Trait::Config object) and provide a more abstract view of them.

If given either a Class::Trait::Config object,
a blessed perl object which uses traits or a valid perl package name which uses traits.
This constructor will return a valid Class::Trait::Reflection object which can be used to examine the specific properties of the traits utilized.

Given a trait name,
this method attempts to load the trait using the Class::Trait module,
and then uses that trait to construct a new Class::Trait::Reflection object to examine the trait with.
This can function both as a class method and an instance method.

Given a subroutine reference,
this method can be used to traverse a trait heirarchy.
The subroutine reference needs to take two parameters,
the first is the current trait being examined,
the second is the number representing the depth within the trait heirarchy.

Here is an example of printing out the trait heirarchy as tabbed in names: