Fix for #3515, functional extension & tests

https://cakephp.lighthouseapp.com/projects/42648-cakephp/tickets/3515

I used (string) because it is faster than strval() and there are no real benefits in this case.
Also enabled assign(), append() and prepend() to take any values convertible to string.

Removed try/catch as discussed with ADmad.
Changed the three exception expecting tests to check for PHPUnit_Framework_Error now.
Extract category strings to separate .po files
Add class renames to UpgradeShell

A few classes have moved around or were renamed. Add an ugprade shell
task for those. I also did some internal refactoring to reduce some
duplication and make code shorter.
Add missing path argument to the various tasks.
Fix mistakes.
Add MemcachedEngine
Fix coding standards
Coding standard fix
Drop backup/restore Configure values
Add support for Amazon ElastiCache
Fixed cross-platform issue: LC_* constants have different values on windows
Fixed category constant values: constants in Cake don't use the same values as PHP (Linux)
Remove unnecessary return
Throw an exception if attempting to use authentication without SASL support  installed
Coding standard and readability
Starting the memcached server on travis

To properly test the memcached cache engine
Fixed typos in text and comments
Add encrypt() and decrypt() methods.

These methods use AES-256 and provide a simple to use API with easy to
remember names.
Add support for aes encrypted cookies.

With Security supporting AES encryption it is also ideal to have AES
compatible cookies. Refactor and simplify code. Dynamic invocation of
static method is a bit obtuse and the various methods don't all have the
same arguments.
Fix compatibility with PHP 5.2