Add flag to calculate the correct width and height for exif-orientated images

Hi,

I've had trouble getting the correct width and height returned from dragonfly (I believe the 'problem', if it's not deliberate, lies in ImageMagick). 

Images tagged with exif orientations of 5, 6, 7 or 8 return the width and height swapped - it could be argued that this is the expected behaviour, depending on whether you think a landscape image with an exif flag to make it portrait is technically landscape or portrait.

The end result is that if I upload one of the 5-to-8-flagged images and use auto_orient, I end up with width() and height() swapped in the database.

This may only be applicable when used with auto_orient, depending on the use case, so I've added a flag called 'smart_dimensions' for want of a better term, that checks the exif orientation flag and adjusts the width and height accordingly.

Thanks for all your hard work, much appreciated!