Improved token security

...by adding salt. These token are used in form which act on data to
prevent CSRF attacks.
This closes issue https://github.com/sebsauvage/Shaarli/issues/24
Check that sessions work before installation.

This is necessary because some hosts do not have a properly set
session.save_path parameter in php config, or do not have write access
to the directory.
RSS patch for Thunderbird (and some RSS clients).

In the RSS specifications, the "link" tags contains the URL to follow,
and the "guid" contains a unique identifier (which may or may not be an
URL).
RSS clients should always use "link" to follow the link (and most do),
but Thunderbird uses the "guid" if it find a valid URL inside (and only
falls back to "link" if "guid" is not an URL).

I have patched the RSS feed so that Thunderbird ignores the URL in guid.
Corrected: "Nothing found" when logging out when only private links were displayed.

This closes the issues https://github.com/sebsauvage/Shaarli/issues/25
Sort tags
URL source in cached RSS feeds.
Added option to disable jQuery and heavy javascript

Shaarli uses light Javascript in its normal operation, and some jQuery
for some features (autocomplete in tags, QR-Code popup...).
jQuery can be slow on small computers. An option has been added in
configuration screen to disable javascript features which are hard on
CPU.
(Note that the Picture Wall is awfully heavy *without* jQuery.)

(Side note: A *LOT* of users want Shaarli to work without javasript at
all, if possible. That's why I try to use as few javascript as possible:
It keeps Shaarli pages fast.)
Proper redirect in popup when login fails.

This corrects issue https://github.com/sebsauvage/Shaarli/issues/10
Corrected vulnerabilities (see report below)

Title : Shaarli Vulnerabilities
Author : @erwan_lr | @_WPScan_

Vendor : http://sebsauvage.net/wiki/doku.php?id=php:shaarli
Download : https://github.com/sebsauvage/Shaarli/archive/master.zip |
http://sebsauvage.net/files/shaarli_0.0.40beta.zip
Affected versions : master-705F835, 0.0.40-beta (versions below may also
be vulnerable)

Vulnerabilities : Persistent XSS & Unvalidated Redirects and Forwards

Persistent XSS :
- During the instalation or configuration modification, the title field
is vulnerable. e.g <script>alert(1)</script>
Quotes can not be used because of var_export(), but String.fromCharCode
works

- The url field of a link is vulnerable :

When there is no redirector : javascript:alert(1)
Then, the code is triggered when a user click the url of a link

Or with a classic XSS : "><script>alert(1)</script>

Unvalidated Redirects and Forwards :
A request with the param linksperpage or privateonly can be used to
redirect a user to an arbitrary referer

e.g
GET /Audit/Shaarli/master-705f835/?linksperpage=10 HTTP/1.1
Host: 127.0.0.1
Referer: https://duckduckgo.com

History :
March 2, 2013
- Vendor contacted
Added https to list of authorized protocols.
[add] https://github.com/sebsauvage/Shaarli/issues/20 New links created as private by default.
Merge pull request #30 from Knah-Tsaeb/master

Merged "Private by default" feature (when creating a new link).
Got rid of small display bugs before installation.
Check that Shaarli has the right to write in its own directory.

Because some user forget to check this at installation.
Added second check to write rights.

(Because on some hosts is_writable() is not reliable.)