Log DB exceptions on SiteDBEditPage

SiteDBEditPage is smart, and rolls back failed DB calls, showing the user a "something went wrong" message. However the exception is just thrown away by default. This means we never get reports of failed queries, and makes development tricky. So instead always process the exception and continue so it gets outputted in development, and logged in production.
Merge pull request #94 from isaacgrant/sitedbeditpage-log-db-exceptions

Log DB exceptions on SiteDBEditPage
Allow for no message to be added.
Merge pull request #96 from charleswaddell/hide-account-password-message

Allow for no message to be added.
prepare for release of 2.1.20
Fix a bug related to editing an existing image.

SiteImage uploads have always allowed editing the image, without actually replacing the image.

I believe this is primarily to allow editing other fields, such as title if available. Despite the base Site package upload page having no further fields beyond the upload widgets, I've kept this behaviour for easier subclassing and use in existing pages. What this does mean is that we shouldn't replace teh existing object, unless new image is uploaded.
Merge pull request #97 from isaacgrant/replace-image-bug

Fix a bug related to editing an existing image.
prepare for release of 2.1.21 | package party