Allow calls to stash.put to specify overwrite=True 

Calling stash.put() multiple times with the same value destroys it and prevents it from being obtained with take().

This is unfortunate for some uses, such as CSP report stashing when there may be multiple violations, as in setInterval().  

This allows specifying an optional overwrite boolean to quietly overwrite any existing stashed value instead of throwing and destroying the stash.