Split logic into models

The Form and Form::Address models now hold information about the
form. This information is used by the Generator to create the PDF
file.

Both models use Docile to provide a nice configuration DSL.