Sinatra::Schema

Define the producer API schema using a [Ruby DSL](http://github.com/pedro/sinatra-schema) instead of JSON/YAML.
@ys could work! but I don't love these because the type goes from a method (`property.text`) to a symbol (`type: :text`), so it strikes me as slightly inconsistent.

@hgmnz but what about nested properties? One more block?