PUT /fieldwork/:id now returns 204.

This is Rails 3.2's default responder behavior.  I personally don't care
that much about the exact status code of PUT /api/v1/fieldwork/:id and I
don't think Field cares either, so accepting the status change was fine
by me.

Note: the important part is that we get back a resolvable location to
check the merge status, and that, according to scenarios, still works.
ActiveRecord::StaleObjectError's constructor changed.
Speed up and simplify Survey specs.

This was originally motivated to clear out invalid references in test
data, but I think these specs are a bit easier to read, too.

Said test data still needs to be fixed or eliminated.
Rails 3.2.13.
Do not declare #value as an attribute method.

Some revision between ActiveRecord 3.1 and 3.2 introduced a requirement
that attribute methods in ActiveRecord::Base descendants be backed by
columns.

I'm not sure what revision that is because I'm not interested enough to
bisect Rails for this, but I do know that you get a stack trace like
this without this commit:

    activerecord-3.2.13/lib/active_record/attribute_methods/time_zone_conversion.rb:60:in `create_time_zone_conversion_attribute?':
        undefined method `type' for nil:NilClass (NoMethodError)
    from activerecord-3.2.13/lib/active_record/attribute_methods/time_zone_conversion.rb:24:in `attribute_cast_code'
    from activerecord-3.2.13/lib/active_record/attribute_methods/serialization.rb:80:in `attribute_cast_code'
    from activerecord-3.2.13/lib/active_record/attribute_methods/read.rb:72:in `define_method_attribute'
    from activerecord-3.2.13/lib/active_record/attribute_methods/primary_key.rb:29:in `define_method_attribute'
    from activemodel-3.2.13/lib/active_model/attribute_methods.rb:267:in `block in define_attribute_method'
    from activemodel-3.2.13/lib/active_model/attribute_methods.rb:260:in `each'
    from activemodel-3.2.13/lib/active_model/attribute_methods.rb:260:in `define_attribute_method'
    from /Users/davidyip/Projects/ncs/core/lib/ncs_navigator/core/surveyor/response_value.rb:28:in `included'

The frame at the ActiveModel -> ActiveRecord transition point (i.e.
@ primary_key.rb:29) is executing code that was introduced in Rails @
e9fb6d04bdfbe3dfc4ba1a3cf442ec5d25764300.  Again, that's not
establishing causation, which means that this whole paragraph is really
worthless, but just in Case You Might Want To Know, etc.

More motivated detectives are welcome.

---

You might be wondering why @value_set is unconditionally set in #value=.
The reason is that calling #value= does indeed always set @value, even
if @value just happens to equal #value_from_response.

The write_value_to_record before_save hook goes through the typical
ActiveRecord attribute method machinery, which means that we still do
have the opportunity to check whether or not the set value is actually
different and do appropriate optimizations.
Merge branch 'rails-32' into develop

Upgrades Cases to Rails 3.2.