Make FileFilter check more generic so ActionDispatch::Http::UploadedFile is accepted

Hello!

I stumbled with this bug when I tried to use `active_interaction` and `CarrierWave` together. The bug consists in the following:
Since `actionpack`'s `ActionDispatch::Http::UploadedFile` responds to `tempfle`, `CarrierWave` (inside `ActiveRecord` model) receives `Tempfile` instance and not its wrapper `ActionDispatch::Http::UploadedFile`, losing this way access to extra variables like `original_file_name`, `content_type` and etc. This breaks some `Carrierwave` validations and ends up with saving file with a generic temporary name like `rack20141203-27678-2wbop` without extension which is not good.
So I made this check more generic according the fact that all `IO`-like classes respond to `close` method.
I couldn't write more explicit specs to test this behavior without adding `CarrierWave` or `actionpack` as a dependency. If you're not satisfied with changes in this pull request, I'll be happy to work on it together.
Cheers!
Only subclasses of `Object` respond to `#respond_to?`. Case in point:

``` rb
BasicObject.new.respond_to? :something
# NoMethodError: undefined method `respond_to?' for #<BasicObject:0x...>
```