Sanchez/fix duplicate assessments

Adds in the initial client side JS fix to avoid duplicate calls to get peer submissions, but also secures the client side code to avoid retrieving duplicate peer workflow items when an assessment has been made against the associated submission.

This does mean that, if a duplicate does get created, a soft lock will be created on the associated submission until the duplicate has expired. With client side changes this should be much less frequent. 

@wedaly @gradyward 
I'm concerned that this is going to introduce more database calls in some of our slowest AJAX requests.  Would it be possible to retrieve all the workflow items in one database request (both completed and incomplete), then programmatically filter out the duplicates?