Use 404 status code for custom 404 page

Fixes #275 and #291.
Improve the access denied (403) page

This is an improved version of the current access denied (403) page based on the built-in not found (404) page.

Shows a link to the CMS backend if the user is logged in and doesn't have permissions for the backend page it's trying to access, but does have permissions for the CMS backend.

Please note that the following languages are machine translated: ja, pt-br, ru and sv.
Merge pull request #314 from Naxiz/improved-403

Improve the access denied (403) page
Fixed a security vulnerability
Create functional tests
Move unit tests to unit folder
Make word wrap fluid by default
Minor
Fixes #318
Tidy up #314
Fixes #316 manually (unable to merge)
Merge pull request #315 from Naxiz/fix-275-291

Use 404 status code for custom 404 page
Rename
Rename
Allow Cms Controller to set status code
Simplify logic, test + cert
Uncomment Auth functional tests
Backend and frontend controllers now return a Response object and support setting the status code
Add functional tests for partials, layouts and content
Account for theme definition
Fix variable name in isset magic method