abstract attachments handling into HTML::Mason::Commands::ProcessAttachments

there is a bit difference for "delete $session{'Attachments'}" between pages,
e.g.

in create page:

    unless (keys %{$session{'Attachments'}} and $ARGS{'id'} eq 'new') {
        delete $session{'Attachments'};
    }

in update pages:

    unless (keys %{ $session{'Attachments'} } and $ARGS{'UpdateAttach'}) {
        delete $session{'Attachments'};
    }

I chose to check $ARGS{'UpdateAttach'} consistently for all the pages.
attach more files support for self service
Merge branch '4.0/selfservice-attach-more' into 4.0-trunk