Fixed #18483 -- Marked hidden field error string for translation

Thanks Evil Clay for the report and Emil Stenstrom for the initial
patch.
Fixed #16123 -- Ensured strptime receive proper string type

strptime generates an UnicodeEncodeError when using a non-ascii
unicode string on Python 2.
Fixed two malformed links.
Fixed #19677 -- Introspection of recursive foreign keys under SQLite.

Thanks Simon Charette.
Fixed #19676 -- Supported 'self' foreign keys in inspectdb.

Thanks Georgy Kutsurua for the report and Simon Charette for the patch.
Added HTML5 email input type

Refs #16630.
Added HTML5 url input type

Refs #16630.
Fixed #19683 - Added a missing import in signing example.

Thanks sunsongxp@ for the report.
Updated metrics on the documentation.
Fixed typos in docs and comments
Implemented some SpatiaLiteOperations as cached properties

Previously, some properties weren't set unless
confirm_spatial_components_versions() was explicitely called.
Fixed #19552 -- Enhanced makemessages handling of ``{# #}``-style template comments.

They are simply ignored now. This allows for a more correct behavior when
they are placed before translatable constructs on the same line.

Previously, the latter were wrongly ignored because the former were
preserved when converting template code to the internal Python-syntax
form later fed to xgettext but Python has no ``/* ... */``-style
comments.

Also, special comments directed to translators are now only taken in
account when they are located at the end of a line. e.g.::

  {# Translators: ignored #}{% trans "Literal A" %}{# Translators: valid, associated with "Literal B" below #}
  {% trans "Literal B" %}

Behavior of ``{% comment %}...{% endcomment %}``tags remains unchanged.

Thanks juneih at redpill-linpro dot com for the report and Claude for
his work on the issue.