Illegal Job run duration causes a database exception

Fixes bug report:
http://www.concrete5.org/developers/bugs/5-6-2-1/illegal-job-run-duration-causes-a-database-exception/
Allow changing only the case of user names

Currently, if you try to change only the case of a username (for instance,
from admin to Admin), you'll receive the error message "The username '%s'
already exists".
With this edit we'll let changing the case.

As a further minor improvement, the check if the username is unique is
done only if the username changes (before it was always performed).
Localize groups name/description, group sets name

Let's introduce the following translation contexts:
- *GroupName* for group names
- *GroupDescription* for group descriptions
- *GroupSetName* for group set names

Whan using with models, you can use the following methods:
- Group::getGroupDisplayName
- Group::getGroupDisplayDescription
- GroupSet::getGroupSetDisplayName
Fix handling of strings in SEO and file names

* URLify library updated to latest version (and customizations removed)
* added TextHelper::asciify() method
* TextHelper::sanitizeFileSystem() now does not removes words excluded
  for SEO
* FileHelper::sanitize() now correctly handles multibyte filenames; if the
  resulting filename is empty (for instance for Japanese file names) let's
  build the name from md5()
Allow specifying parameters via command line

Let's extend the parameters optionally defined in Gruntfile.parameters.js
with the ones optionally specified in the command line.

For instance, the translations grunt task may use the txPassword either
from Gruntfile.parameters.js or from a command line like:
grunt translations --txPassword=...
Fix to allow empty list of excluded words

Let's allow users to have an empty list of words to be excluded from URLs
Extent the file-system grunt library

New functions available:
- rmdirRecursiveSync to remove a directory and all its content
  synchronously
- copyFile to copy a file asynchronously
Update README.md

Let's describe how to use options, and tell which are the options for
the 'translate' task.
Fix sentence in build/README.md
Fix to allow for creation of File Versions by anonymous users.
Add a bit more space for SWFUpload button text

Translating "Add Files" may require some more space in the upload button.
Fix Job ID Order

Job jID ordering is not respected due to `ORDER BY jDateLastRun`

This causes an odd ordering in the Jobs single page

- Add `jID` to `ORDER BY` to use jID as secondary ordering
Fix CollecionVersion::getAttribute Cache Issue

Fix `CollectionVersion::getAttribute()` Cache Issue

`CollectionVersion::getAttribute()` caches attributes in an array based
on the attribute handle `akHandle`

When a Collection Attribute is requested with two different display
modes `$displayMode` in the same request the first one requested will
always be returned.

- Add `$akHash` value comprised of both attribute handle and display
  mode for hash key
Moving unit tests into core directory
Merge branch 'master' of github.com:concrete5/concrete5
Merge pull request #1495 from mlocati/grunt-allow-commandline-params

Allow specifying parameters via command line
Merge pull request #1485 from mlocati/localize-group-names-v2

Localize groups name/description, group sets name
Merge pull request #1435 from mlocati/allow-update-usernale-caseonly

Allow changing only the case of user names
Merge pull request #1519 from mkly/fix_job_id_order

Fix Job ID Order
fixing a test, fixing date helper