* Removed <select> elements for long and short date formats in $Site.edit skin
* Removed compatibility support for long and short date formats
* Removed global getDateFormats() method and commented code in global formatDate() method
* Slightly shortened <select> elements in site preferences again
* Rewrite client-side code for reformatting the time zone <select> element according to changes in global getTimeZones() method
* Replaced “return false” with call for event.preventDefault() in client-side event-driven code
* Rewrote global getDateFormats() and formatDate() methods – caution! getDateFormats() will be removed in the next commit because the dropdown menus in site preferences are obsolete; just committing the code for the record
* Replaced req.data with req.params in Stories.create_action() and Images.create_action() to prevent leaking of unwanted data (e.g. http_*) to the database
* Renamed and refactored Story.setMetadata() to Story.setCustomContent()
* Renamed Story.isMetadata() to Story.isCustomContent()
* Added JSON.pad() and JSON.sendPaddedResponse() methods
* Added calls for JSON.sendPaddedResponse() in Stories.create_action() and Images.create_action()
* Removed call for Site.processHref() method in Site.getStaticUrl() - still to be evaluated
* Added call for Feature.getPermission() in Site.getPermission()
* Replaced redundant code with calls for new File methods in File, Files, Image and Images prototypes
* Fixed bug in Image.getFileExtension() causing file types containing charset information from being processed correctly
* Added check to Image.update() if getURL() returns data to allow post requests with no file upload at all (e.g. via curl)
* Removed call for root.processHref() in Images.Default.Image() to reduce complexity – needs more evaluation, though
* Removed “extras” code because I just forgot I already implemented a Feature prototype
* Added global <% feature %> macro calling the main() method of the desired feature
* Added Feature.getPermission() method which can be invoked from HopObject.getPermission()
* Refactored connect feature to work with modified Feature prototype
* Added global app.data.extras collection and registerExtra() method
* Defined res.handlers.extra in HopObject.onRequest() handler to provide extra macros
* Implemented reCAPTCHA for anonymously contacting an Antville member as proof of concept