Added support for Contributors
Re-factored doc and docArgs methods to be consistent with Scala's asScala and asJava methods.
Factored out the model writer concerns so that they are closely associated with where the domain object is declared.