Add tests for save() and multiple locales.

Refs #3498
Replaced simple and therefore pointless array_push function references with the ordinary way of adding an array element. This will increase the performance and the code looks much cleaner this way IMHO
Fix double encoding in JsHelper request methods.

The urls were being HTML & URL encoded, this causes issues with URL's
containing query string parameters.  Remove HTML entities as they aren't
required in the Javascript context.

Fixes #3495
Consistently inflect theme names.

Themes should be consistently converted into CamelCase, this
makes the camelization consitent with the treatment in App::themePath().

Fixes #3508
Start and end transactions on the fixtures datasource.

Fixes #3490
Remove duplicated assertions.

These assertions are effectively duplicated in the next test method.
Fix radio() and boolean values.

Boolean values should be cast to integer equivalents, which allows
for correct handling of boolean columns and their string equivalents
used in form options.

Fixes #3512
Closes ticket #3080 in CakePHP Lighthouse (http://cakephp.lighthouseapp.com/projects/42648/tickets/3080-hashflatten-endless-loop-on-single-0-int-keys).
Hash::flatten has a bug which causes an endless loop when try to flatten an integer key.
Probably the $data array pointer won't reset itself when doing:

$data = $element

and

list($data, $path) = array_pop($stack)

The solution is to reset the pointer after the assignments.
Add test for recursion issues in Hash::expand().

Refs #3080
Merge branch 'master' into 2.3