CDN support

Implemented support for CDN

if cdn_id is specified, it will invalidate objects on CDN.

Implemented fixes as Fog does not support dry run. Also, basic test is implemented.
Idiomatic Ruby doesn’t use the `then` after the `if`. (There are some similar instances below.)