Harvest photos

There's a lot here.

Mostly, I started with copying stuff from Plantings to Harvests. The Photos model has been modified to have m2m's for both plantings and harvests, and the photos controller has been modified so it expects parameters like this:
> ?type=planting&id=3
>  ?type=harvest&id=4

not like this:

>    ?planting_id=3

It has a list of valid types (right now just harvest and planting, but I'll work on garden soon), and it checks that all  input is valid. Then it marks which Thing the photo belongs to. It parses which type of Thing that is from the type parameter rather than having if/elsif statements that need to be updated every time the valid type list is updated.

Most of the rest should be pretty self-explanatory, given the old code shows in the diff. I did add expand the tests on both photos and harvests and update the planting photo tests to include the new parameter list.
I think the nesting's essential, but I agree it's a bit hard to follow the logic. What might work is to invert the sense of the tests:

    if $thing_goes_wrong
        handle error appropriately
    else
        proceed...
    end