Preserve property type constraints

Another follow-up pull request for #52.

 - preserve type constraints like `enum`
 - include model's `description` field in swagger metadata

/to @ritch please review
/cc @shelbys @STRML