Handle MissingViewExceptions better.

When Router::parseExtensions() is enabled for a file extension
that does not map to a view an infinite loop of attempting to render
View/$ext/error500.ctp will be entered. When catching
a MissingViewException check if we were trying to render an
error500. If we were, revert to safe rendering as we might enter a loop.
Blackhole requests when the action is the blackhole callback.

When a user requests the blackhole callback as an action we should
blackhole that request. The blackhole callback should not be URL
accessible.

Fixes #3496
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
Merge pull request #1055 from and-ers/master

Optimize and switch array_push() for [] =
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