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.

This also solves the case of using a service like [Filepicker.io](http://www.filepicker.io) to handle uploads and then passing them off to Carrierwave to process.