Add browser caching and EXIF orientation support

These features are pretty separate but I thought it would be easier just to include them in the same PR. If you want me to split them up - I can (the commits are completely separate for each feature).

I couldn't get PHPUnit to run without erroring, so no tests for these I'm afraid.

### Browser Caching
This is off by default, but in Bolt config you can set `general/thumbnails/browser_cache_time` to the amount of seconds you want thumbnails to cache for in the browser. It just sets the `Cache-Control` header to `max-age=time, public`. As thumbnails don't even pass a 304 Not Modified, I thought this would be really useful to lower load time and reduce server load for those people who are revisiting.

It's off by default because browser caching can be really frustrating for those who don't want it. It may just be worth adding hashes to the URL for cache busting purposes - the server doesn't even need to do anything with it.

### EXIF Orientation
This is on by default, but is toggled with the `general/thumbnails/exif_orientation` config. It takes into account the EXIF orientation (all 8 of them) when generating the thumbnail - rotating and flipping the image accordingly.

To give this one a go, put [these images](http://www.galloway.me.uk/2012/01/uiimageorientation-exif-orientation-sample-images/) into an imagelist - all of the text should appear the right way round if exif_orientation is true.