memoizes data available on the ListBucket request

When listing objects within a bucket the server returns the etag, last-modified and size values for each object. The SDK simply ignores all those values when creating instances of S3Object and if they're needed it makes a HEAD request (one per object).

I didn't want to change the interface too much-- maybe using the options hash on S3Object isn't the best choice, but consider this patch as more of a conversation starter than anything.

I've been using my fork now and it saves up a lot of requests.

Any thoughts?