Updates to resident picker
Created migration, cleaned up Rails stuff

Also, changed the housing picker to let you add forms not already part of the cart
Create the Dragoman class that translates Resident attributes to PDF fields

Dragoman is sort of a synonym for "translator."

Dragoman's purpose is to let you write rules for translating one
set of named values to another.

For example, suppose you have the following information about a person,

    first_name => "Walter"
    middle_name => "Hartwell"
    last_name => "White"
    dob => "1959-09-07"
    sex => :male
    zip_code => 87111

Now we'd like to use this information to programmatically fill out a
form.  That form has text fields with these names:

    age
    full_name
    home_phone

Dragoman lets you define rules for translating the first set to the second.
Such rules would look something like:

    age = today's date - :dob, in years
    full_name = "#{first_name} #{middle_name} #{last_name}
    home_phone = "#{home_phone}" or "#{cell_phone}"

Since we don't have any phone numbers in our person, Dragoman should
inform us that getting values for either home_phone or cell_phone would
make our information more complete.  We can use this information when telling
the users which fields they still need to enter.

The form might want the same information in multiple places, but use
different names for the fields.  Suppose the form includes:

    first_name
    firstname2
    _First_Name

We don't want to redefine the same mapping for every possible field.
Dragoman can map patterns to ways of producing the desired output.

    /first.?name/i => first_name
Merge remote-tracking branch 'origin/master' into select-resident-fail

* origin/master:
  Create the Dragoman class that translates Resident attributes to PDF fields
Require dragoman so Resident can actually use it
Remove debug prints from generate_pdf_archive
Cart attributes don't go in the post the data, silly
Extract method fill_form from generate_pdf_archive
Return a list of strings from Cart#field_names, not a list of hashes
Dragoman#is_provided isn't configurable

Like the comment said, this application wants to consider empty strings as "not
provided."  Problem is, the user code can't pass in a lambda with @provider in
the closure.  It doesn't work right, and the very idea of making it configurable
is more flexibility than Dragoman needs right now.
Redirect to picker_path for cart updates

Fixes a functional test, though I'm not sure it affects the app as it is now.
Dragoman: Test that empty-string attributes count as missing
Dragoman methods return Sets rather than arrays

Sets make more sense for rules which may have multiple productions, using the
same provider item multiple times.

For something like:

   @d.learn(/FullName.*/,
            ->(first_name, middle_name, last_name) { "#{first_name} #{middle_name} #{last_name}"},
            ->(first_name, last_name) { "#{first_name} #{last_name}"})

Dragoman#required_items should not contain :first_name and :last_name twice.
Refactor Dragoman test
Add guard with test and rails plugins

This helps with unit test automation.
Refactor and add features to Dragoman