2.6 add 'atomic' option to "save()" API - delivery

New PR created for delivery of https://github.com/cakephp/cakephp/pull/3516 .
Due to some branch problem, I had to create another branch for delivery, but the previous PR could not be updated with the new branch.

Moreover, conflicts due to merged commits from https://github.com/cakephp/cakephp/pull/3590 were resolved by me (the author of these commits) to make this new PR easier to merge.