add 'atomic' option to "save()" API

This commit adds a transaction context to 'save()' API in order to rollback
possible modifications done in some 'Model.beforeSave' listener callback.
This will allow cakephp 2.x to behave like 3.0 .
It uses try/catch to better handle transaction.
Previous save() API is renamed to protected _doSave() method.
A new save() method is created for transaction handling.
'atomic' option is disabled for internal 'save()' call.
Add once option to css().

The default value is false for backwards compatibility. In 3.0, the
default will be made consistent with script().

Refs #1973
Refs #3628
Merge pull request #3604 from Haititi/2.6-save-atomic

2.6 add 'atomic' option to "save()" API - delivery
Merge pull request #3653 from markstory/2.6-html-css

Add once option to css().
simplify connect code for redis
Merge pull request #3659 from dogmatic69/patch-3

simplify connect code for redis
Deprecate App::pluginPath()
Merge pull request #3668 from ADmad/2.6-app-pluginpath

Deprecate App::pluginPath()
Merge remote-tracking branch 'origin/2.6' into rita7-2.6