Add support for Imagick if present

Imagick is faster and more memory efficient than GD but less commonly installed. This uses Imagick if present otherwise falls back on GD. This may help reduce out of memory errors on larger images.
Added check for whether value was false to eliminate two false values making checkboxes set to true
Fix escaping strings for JavaScript

The correct way to pass strings from PHP to JavaScript is json_encode.

Using addslashes or htmlspecialchars(..., ENT_QUOTES) may lead to
unexpected issues.
Declare some local variables

Let's avoid creating global variables
sort language names with natcasesort because they are mixed case
Ignore build/npm-debug.log
Update Single Pages dashboard controller to pass error codes rather than error messages
Fix messages in dashboard/pages/single

Let's use the standard message/error handling
Merge pull request #1 from mlocati/update-dashboard-single-page-errors-v2

Fix messages in dashboard/pages/single
Unify integer field type declarations in database files
Add missing variable assignment
Add page to test mail settings

When configuring the email settings it may me handy to test them in an
easy way.
Let's add the page /dashboard/system/mail/method/test_settings
Fix XSS vulnerability
Rename from "Test SMTP" to "Test Mail"...

...since we're testing the mail system, not the SMTP settings ;)
Add Disallow: /page_types
Update mail.php

Add function setBodyHTML. $bodyHTML is protected and can't be retrieved without a getter. Useful when you want to debug mails on a machine without a mailserver.
Fix adding timestamp in ccm_addHeaderItem

When adding a timestamp to the resources (.css/.js files) loaded by
ccm_addHeaderItem, add a timestamp to avoid cache.
BTW, if the URL of the resource already contains a GET parameters
(eg 'file.js?a=X'), the timestamp is appended withoud adding a new
parameter (eg 'file.js?a=X1393878504000).
That will mess up the existing GET parameter.

Let's fix this by adding a new GET parameter when adding the timestamp
even when we already have other GET parameters.
Fix potential problems with javascript/translations

'Automation Instructions' may contains quotes in translations: let's be
sure to correctly escape it before using it in JavaScript
sanitizing theme on save
Merge branch 'master' of github.com:concrete5/concrete5