Add :setter, :adder, :remover, and :clearer association options for overriding the default modification behavior

I think this is a nicer API for overriding association modification
behavior.  Note that in some cases it makes sense to override the
method instead of using these options, mainly if you want to call
super to get the default behavior.