Fix ServiceFilters#rescue_from inherited exceptions

An issue was discovered where rescuing from
a parent error class would cause a TypeError
exception to be thrown when attempting to find
the callable method/block registered to that 
exception. This is due to ruby's capability
to rescue from inherited exceptions.

The following example produced a TypeError. Internally
the exception classes are mapped to their callables,
so `StandardError` would point to the `handle_error`
method.

class UserService
  rescue_from StandardError, :handle_error

  def create
    raise RuntimeError, "oh noes!"
  end

  private

  def handle_error(ex)
    # ex is the thrown exception, which may
    # not be a StandardError but one of its
    # subclasses.
  end
end

A simplified example of this call stack would look like:

service = UserService.new
begin
  service.create
rescue StandardError => e
  # e.class is RuntimeError, but we haven't
  # explicitly mapped RuntimeError to a callable
  error_handler = rescue_filters[e.class]
  error_handler.call(e) # error_handler is nil here
end

The failure is that in attempting to find the 
error handling callable from the defined rescue
handlers, it would fail because we are statically
mapping StandardError -> :handle_error method.

The solution is to simply do a comparison of 
the thrown exception's class with that of any mapped
classes:

begin
  service.create
rescue StandardError => e
  key = rescue_filters.keys.detect { |mapped| 
    e.class < mapped
  }
  error_handler = rescue_filters[key]
  error_handler.call(e)
end
Bump version 2.6.2