[WIP] Add custom-policy generation for CloudFront.

@andreadipersio Not finished but wanted to run it by you to see if you think this is the right direction.
Maybe we can rename this to `PolicyString` and change the signature to 
`func() (string, error)`.
So we prevent some confusion as `String()` is generally used to implement the *Stringer* interface with type `func() string`