Use filename in Content-Disposition header when present

Carrierwave should respect the filename set in the Content-Disposition
header when downloading remote files. This fixes issue #1047 as well.

Included test specs for checking the content-disposition filename against the extension white list or extension black list.