support debugger in HasMethods::add_method

When using the perl debugger, it is useful to keep track of the correct
file name and line numbers per method.  Package::Stash allows for this
in add_symbol (wrapped by MOP method add_package_symbol), but requires
that additional arguments are passed in to track this information.  This
changelist modifies add_method so that, if the debugger is enabled, we
pass the additional parameters into add_package_symbol so as not to
clobber the debugger info in %DB::sub.
only preserve debugger info for MOP::Methods

Added test to cover the case where we are clobbering a class method with
an anonymous sub; in this case, we do not want to preserve the original
DB::sub data for the class method.  In general, we only want to keep the
DB::sub data if we are reinitializing a class, meaning that the method
is already a Class::MOP::Method.  Changed the logic in
HasMethods::add_method so that we only preserve DB::sub data for this
use case.  Also cleaned up trailing whitespace and line number checking.
move debug tracking to _restore_metamethods_from

Moves the logic for preserving DB::sub information from
HasMethods::add_method to _restore_metatmethods_from (which calls
add_method in a loop).  This is because we only want to preserve DB::sub
information in cases where we are reinitializing a class or a role; we
want to allow DB::sub to be clobbered in the general case.  Also added
more test cases to cover Role method reinitialization or clobbering.