New SourceHgWeb plugin for Mercurial integration

This plugin is based on the Gitweb plugin as HgWeb/Mercurial are quite
similar to Gitweb/Git. The only missing feature at the moment is the
ability for SourceHgWeb to determine which files were
added/removed/modified with each changeset. The reason is that HgWeb
doesn't give us easy access to this information in the same way Gitweb
does. Hence we will need to manually parse the changeset diff (--- and
+++ lines), checking for /dev/null as a filename in the event of new
files or deleted files.
Update HgWeb plugin to work with Source 0.14
Fix a number of bugs, support listing files modified

Ton Plomp contributed a patch in June 2010 to resolve a bug whereby
automatic additions of changesets were not working. Another bug with
incorrect timezone offsets was also resolved. Finally, Ton's patch also
allows for the author email address to be unspecified on a commit.

In October 2010 Marcel Bennett reviewed Ton's patch and made a few minor
changes/corrections. Marcel has also added the ability for the
SourceHgWeb plugin to retrieve a list of files modified in a commit.

I have modified the patch to escape variables before outputting them so
that this plugin is safe from potential XSS vulnerabilities.

Co-authored-by: Ton Plomp <tcplomp@gmail.com>
Co-authored-by: Marcel Bennett <marcel@iamserious.com>
Remove executable mode from english language file
Remove duplicated language string
Change WebSVN urls
Add ChangeSet viewer support
Fix whitespace
Changesets store author's id instead of committer

When a commit is authored by A and committed by B, Source_Parse_Users()
function incorrectly sets A's id instead of B's as the committer,
resulting in incorrect changeset information being stored in the DB.

Fixes #44
Simplify user-parsing code

Function Source_Parse_Users() was simplified by removing nearly
identical code to process the author and committer to a generic function
handling this task for both types of users.
WebSVN: fix broken links

Prior to this, every link to WebSVN (v.2.3.3) created unrendered
template pages. This changes URLs from 'websvn/action.php?path=&repo='
form to 'websvn/repo/path?op=' form.

Fixes #46
"Bug Fixed Assign To Committer" option not saved when checkbox unchecked

Fixes #44

Signed-off-by: Damien Regad <damien.regad@merckgroup.com>
Gitweb: Don't use PHP_EOL when parsing output

PHP_EOL is valid only for the current instance of PHP, while Gitweb is
perl and potentially running on a different architecture.  Filter CR/LF
explicitly instead.

Fixes #40
Github: Wrong comparison of repository name

On Github the repository names are not required to be lowercase. The
repository name send in the payload-data by Github could be something
like 'RePo-SiTory_NamE'.

In that case the comparison will fail and no import is possible.

Fixes #34

Signed-off-by: Damien Regad <damien.regad@merckgroup.com>
Github: update language strings following fix for #34
Bumping version numbers

Core framework version -> 0.18
Github -> 0.17
Gitweb -> 0.17
WebSVN -> 0.17