Made either attribute or attribute_name is optional

As of now, this exception uses InvalidAttributeOptions Role for attribute_name, but there are some exceptions which has attribute instance besides attribute_name, so for making this exception more informative, I have added attribute which isa Class::MOP::Attribute.
fixed indentation & removed whitespace
Added documentation to trace & message
Do not use auto_deref, because it is borken
replaced confess with throw_exception
Wrote exception CannotMakeMetaclassCompatible
shortened exception name
Made OverrideConflictInComposition compatible with two exceptions
replaced throw_error with throw_exception
Changed exception name
Wrote tests for OverrideConflictInComposition
Wrote tests for Moose::Meta::Role::Application::RoleSummation
replaced throw_error with throw_exception
Wrote exceptions for Moose::Meta::Role::Application::RoleSummation
Made changes in tests documentation generator
Use CannotMakeMetaclassCompatible for all metaclass compatibility exceptions
removed TODO test which is passing now
replaced die with throw_exception
Wrote tests for PackageDoesNotUseMooseExporter
Wrote PackageDoesNotUseMooseExporter