DRY up keep/remove/replace attachment handling

The code that initiated the behaviour in Admin::AttachmentActionParamHandler
was duplicated across three controllers, making it easy to fail to
update one of them when the behaviour changed. This commit dries it up,
so any controller that includes the module only needs to call it in a
before filter.