Separate Distribution#format into a separate object

So that you can do things like format.open? and format.structured?
Merge pull request #13 from theodi/feature-distribution-formats

Separate Distribution#format into a separate object