Add utils::urlencode() function for percent-escaping UTF-8 strings
addon/client: Minor Doxygen comment clarification
campaignd: Add dumb alternative to utils::interpolate_variables_into_string()

utils::interpolate_variables_into_string() requires a bunch of formula
AI implementation details at linking time, which really shouldn't be in
server-side code (see commit 495f481fdf6cbd6d5eea2ffaa20423f08c955eec).

Since I'm going to need a similar variable interpolation scheme for an
upcoming campaignd feature, add a
fast_interpolate_variables_into_string() function that does something
roughly equivalent, except using simple string replacements without
support for the full WML $variable syntax (e.g. pipes don't have any
meaning in this version of the functionality).
campaign: Implement [server_info] block and feedback_url_format attribute

The [server_info] configuration block is intended to contain additional
information about a campaignd instance that may be used by clients or
the server for various purposes.

As a first such information field, the feedback_url_format string
contains a format string for use with
fast_interpolate_variables_into_string() to build add-on feedback page
URLs.
campaignd: Implement .pbl [feedback] block and [campaign] feedback_url field

The .pbl [feedback] block (also used in the server configuration WML)
specifies a list of format values interpolated into the
feedback_url_format string from [server_info] to build a web page URL
that is delivered to clients each time an add-on's metadata is sent in a
[campaign] block.

For example, given the following campaignd-side configuration:

  [server_info]
      feedback_url_format="http://forums.wesnoth.org/viewtopic.php?t=$thread_id"
  [/server_info]

And the following tag in the _server.pbl WML:

  [feedback]
      thread_id=32091
  [/feedback]

..., the server will deliver the following field as part of the
[campaign] block provided in the response to [request_campaign_list]:

  feedback_url="http://forums.wesnoth.org/viewtopic.php?t=32091

The fields from the [feedback] block are percent-encoded to ensure that
the .pbl WML can't manipulate query strings from the
feedback_url_format. If for a system administrator it is somehow
desirable to let authors enter arbitrary URL fragments (e.g.
feedback_url_format="$url" and [feedback]
url="http://this-site-kills-kittens.example.com, bad idea btw), then
they should probably remove the utils::urlencode() call themselves and
take responsibility for any malicious links that could be served to
users of the add-ons server that way.
addon/info: Add support for the [campaign] feedback_url field from the server
gui2/taddon_description: Update wiki documentation
gui2/tscroll_label: Add the definition for a 'description' scroll_label

This scroll_label definition is intended to be used for big description
boxes like in the Add-ons Manager's description dialog. It paints a
darker transparent background behind the inner grid and adds some
padding to the inner label.
gui2/taddon_description: Completely redesigned dialog layout

The new layout merges some information rows together to increase
available vertical space for displaying additional fields later, and
uses a 'description' scroll_label type for the add-on Description field
to improve its appearance, especially for multi-line descriptions.

This also makes the dialog non-click-dismissable and adds a Close button
on the bottom right corner. Since we're about to add more interactive
controls, there's really not much of a choice about the click-dismiss
option; it gets disabled for such dialogs automatically.
gui2/taddon_description: Add controls to display an add-on's feedback URL

This includes a textbox to display the URL, and two buttons to copy and
visit the URL.
Update changelogs