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.